Tüm Ürünler
Search
Belge Merkezi

Hologres:General-purpose aggregate functions

Son Güncelleme:Oct 06, 2026

Hologres, PostgreSQL toplama işlevlerinin bir alt kümesini destekler. Bu konuda desteklenen işlevler; söz dizimleri, parametreleri ve örnekleriyle birlikte listelenmiştir.

PostgreSQL toplama işlevlerine ilişkin tam teknik özellikler için bkz. Toplama İşlevleri.

Desteklenen işlevler

Aşağıdaki tabloda kategorilere göre gruplandırılmış tüm desteklenen işlevler listelenmektedir.

Genel toplama

İşlev Bağımsız değişken türleri Dönüş türü Açıklama
AVG BIGINT, FLOAT4, FLOAT8, INT Girişle aynı NULL olmayan değerlerin ortalaması
COUNT * veya herhangi bir ifade BIGINT Satır sayısı veya NULL olmayan giriş sayısı
MAX BIGINT, FLOAT4, FLOAT8, INT, NUMERIC Girişle aynı En büyük değer
MAX_BY Herhangi biri (x), karşılaştırılabilir herhangi biri (y) x ile aynı Maksimum y değerine sahip satırdaki x değeri
MIN BIGINT, FLOAT4, FLOAT8, INT, NUMERIC Girişle aynı En küçük değer
MIN_BY Herhangi biri (x), karşılaştırılabilir herhangi biri (y) x ile aynı Minimum y değerine sahip satırdaki x değeri
SUM BIGINT, FLOAT4, FLOAT8, INT, NUMERIC Girişle aynı Tüm değerlerin toplamı
ARRAY_AGG Herhangi biri (JSON, JSONB, TIMETZ, INTERVAL, INET, OID, UUID, diziler hariç) ARRAY Bir dizi halinde toplanan değerler
STRING_AGG TEXT, TEXT TEXT Bir ayırıcı ile birleştirilen NULL olmayan değerler

Boolean toplama

İşlev Bağımsız değişken türleri Dönüş türü Açıklama
BOOL_AND BOOLEAN BOOLEAN Tüm değerler true ise TRUE döner
BOOL_OR BOOLEAN BOOLEAN Herhangi bir değer true ise TRUE döner
EVERY BOOLEAN BOOLEAN Tüm değerler true ise TRUE döner

Bit düzeyinde toplama

İşlev Bağımsız değişken türleri Dönüş türü Açıklama
BIT_AND BIGINT, INT Girişle aynı NULL olmayan değerlerin bit düzeyinde AND işlemi
BIT_OR BIGINT, INT Girişle aynı NULL olmayan değerlerin bit düzeyinde OR işlemi

Kardinalite tahmini (HyperLogLog kullanarak)

İşlev Bağımsız değişken türleri Dönüş türü Açıklama
APPROX_COUNT_DISTINCT Herhangi biri BIGINT Yaklaşık distinct sayısı (HyperLogLog)
UNIQ SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION, TEXT, VARCHAR, TIMESTAMP, TIMESTAMPTZ, DATE, TIMETZ, UUID BIGINT Bir sütundaki değerlerin distinct sayısı; yüksek kardinaliteli GROUP BY için optimize edilmiştir

Yüzdelik dilim tahmini

İşlev Bağımsız değişken türleri Dönüş türü Açıklama
APPROX_PERCENTILE NUMERIC NUMERIC Yaklaşık yüzdelik dilim (rezervuar örnekleme; V3.1+)

İstatistikler

İşlev Bağımsız değişken türleri Dönüş türü Açıklama
CORR DOUBLE PRECISION, FLOAT, FLOAT8 Girişle aynı Korelasyon katsayısı
COVAR_POP DOUBLE PRECISION, FLOAT, FLOAT8 Girişle aynı Popülasyon kovaryansı
COVAR_SAMP DOUBLE PRECISION, FLOAT, FLOAT8 Girişle aynı Örneklem kovaryansı
STDDEV INT, NUMERIC, FLOAT8 NUMERIC veya FLOAT8 Örneklem standart sapması
STDDEV_POP INT, NUMERIC, FLOAT8 NUMERIC veya FLOAT8 Popülasyon standart sapması
STDDEV_SAMP INT, NUMERIC, FLOAT8 NUMERIC veya FLOAT8 Örneklem standart sapması
VARIANCE INT, NUMERIC NUMERIC Örneklem varyansı
VAR_POP FLOAT8, INT, NUMERIC NUMERIC veya FLOAT8 Popülasyon varyansı
VAR_SAMP INT, FLOAT8, NUMERIC NUMERIC veya FLOAT8 Örneklem varyansı

Doğrusal regresyon

İşlev Bağımsız değişken türleri Dönüş türü Açıklama
REGR_AVGX DOUBLE PRECISION, FLOAT, FLOAT8 Girişle aynı Bağımsız değişkenin (X) ortalaması
REGR_AVGY DOUBLE PRECISION, FLOAT, FLOAT8 Girişle aynı Bağımlı değişkenin (Y) ortalaması
REGR_COUNT DOUBLE PRECISION, FLOAT, FLOAT8 BIGINT Her iki girişin de NULL olmadığı satırlar
REGR_INTERCEPT DOUBLE PRECISION, FLOAT, FLOAT8 Girişle aynı En küçük kareler uyumlu doğrunun Y eksenini kestiği nokta
REGR_R2 DOUBLE PRECISION, FLOAT, FLOAT8 Girişle aynı Korelasyon katsayısının karesi
REGR_SLOPE DOUBLE PRECISION, FLOAT, FLOAT8 Girişle aynı En küçük kareler uyumlu doğrunun eğimi
REGR_SXX DOUBLE PRECISION, FLOAT, FLOAT8 Girişle aynı X'in karelerinin toplamı
REGR_SXY DOUBLE PRECISION, FLOAT, FLOAT8 Girişle aynı X ve Y çarpımlarının toplamı

Örnek veriler

Aşağıdaki örneklerde example_table kullanılmaktadır. Tabloyu oluşturmak ve örnek verileri eklemek için bu kurulum betiğini çalıştırın.

-- Create a table.
CREATE TABLE example_table(
    c1 INT,
    c2 BOOLEAN,
    c3 VARCHAR(10),
    c4 DECIMAL(3, 1),
    c5 TEXT,
    c6 FLOAT8,
    c7 FLOAT8
);

-- Insert data.
INSERT INTO example_table (c1, c2, c3, c4, c5, c6, C7) VALUES
(1, true, 'a', 1.1, 3, 6, 7),
(2, false, 'b', 2.2, 4, 6, 2.6);

APPROX_COUNT_DISTINCT

HyperLogLog kardinalite tahminini kullanarak yaklaşık bir distinct sayısı döndürür. Ortalama hata oranı %0,1 ile %1 arasındadır; bu durum, tam COUNT DISTINCT ( column ) işlemine kıyasla çok daha düşük bir yük getirir.

APPROX_COUNT_DISTINCT ( <column> )

Parametreler

Parametre Açıklama
column Gerekli. Yaklaşık distinct sayısının hesaplanacağı sütun.

Kullanım notları

HyperLogLog algoritmasının hassasiyeti bir gruplama parametresi ile kontrol edilir:

SET hg_experimental_approx_count_distinct_precision = 20;
Ayar Ayrıntılar
Geçerli aralık 12–20
Varsayılan 17
Etkisi Daha büyük değer = daha fazla grup = daha yüksek hassasiyet, ancak daha fazla hesaplama ve bellek kullanımı
Hassasiyet > 17 HyperLogLog++ algoritmasına geçer; hatayı daha da azaltır ve stabilize eder
Hassasiyet = 20 Çoğu durumda hatayı %0,01–%0,2'ye düşürür

Bu parametreyi oturum düzeyinde SET ile veya veritabanı düzeyinde ALTER DATABASE ile ayarlayın:

-- Session level
SET hg_experimental_approx_count_distinct_precision = 20;

-- Database level
ALTER DATABASE dbname SET hg_experimental_approx_count_distinct_precision = 20;
Tam bir distinct sayısı hesaplamak için COUNT DISTINCT ( column ) kullanın. Bu yöntem daha fazla kaynak tüketir.

Örnek

Aşağıdaki örnekler, MaxCompute tarafından sağlanan TPC-H genel veri kümesindeki ORDERS tablosunu kullanır. Sorguları çalıştırmadan önce gerekli tabloları oluşturmak için aşağıdaki kurulum betiğini çalıştırın.

-- Create a foreign table.
IMPORT FOREIGN SCHEMA public_data
LIMIT TO (ORDERS_10g)
FROM SERVER odps_server INTO public options (if_table_exist 'update');

-- Create an internal table.
BEGIN;
CREATE TABLE ORDERS (
    O_ORDERKEY bigint NOT NULL PRIMARY KEY,
    O_CUSTKEY int NOT NULL,
    O_ORDERSTATUS text NOT NULL,
    O_TOTALPRICE DECIMAL(12, 2) NOT NULL,
    O_ORDERDATE timestamptz NOT NULL,
    O_ORDERPRIORITY text NOT NULL,
    O_CLERK text NOT NULL,
    O_SHIPPRIORITY int NOT NULL,
    O_COMMENT text NOT NULL
);

CALL set_table_property ('ORDERS', 'segment_key', 'O_ORDERDATE');
CALL set_table_property ('ORDERS', 'distribution_key', 'O_ORDERKEY');
CALL set_table_property ('ORDERS', 'bitmap_columns', 'O_ORDERKEY,O_CUSTKEY,O_ORDERSTATUS,O_ORDERPRIORITY,O_CLERK,O_SHIPPRIORITY,O_COMMENT');
CALL set_table_property ('ORDERS', 'dictionary_encoding_columns', 'O_ORDERSTATUS,O_ORDERPRIORITY,O_CLERK,O_COMMENT');

COMMENT ON COLUMN ORDERS.O_ORDERKEY IS 'Order ID';
COMMENT ON COLUMN ORDERS.O_CUSTKEY IS 'Customer ID';
COMMENT ON COLUMN ORDERS.O_ORDERSTATUS IS 'Order status';
COMMENT ON COLUMN ORDERS.O_TOTALPRICE IS 'Total price';
COMMENT ON COLUMN ORDERS.O_ORDERDATE IS 'Order date';
COMMENT ON COLUMN ORDERS.O_ORDERPRIORITY IS 'Order priority';
COMMENT ON COLUMN ORDERS.O_CLERK IS 'Cashier';
COMMENT ON COLUMN ORDERS.O_SHIPPRIORITY IS 'Shipping priority';
COMMENT ON COLUMN ORDERS.O_COMMENT IS 'Comment';

COMMIT;

-- Import data to the internal table.
INSERT INTO ORDERS SELECT * FROM ORDERS_10g;

O_CUSTKEY sütunundaki yaklaşık distinct sayısını hesaplayın:

SELECT APPROX_COUNT_DISTINCT ( O_CUSTKEY ) FROM ORDERS;

Sonuç:

approx_count_distinct
-----------------------
               1000422

Global hassasiyeti 20 olarak ayarlayarak hesaplayın:

ALTER DATABASE dbname SET hg_experimental_approx_count_distinct_precision = 20;
SELECT APPROX_COUNT_DISTINCT ( O_CUSTKEY ) FROM ORDERS;

Sonuç:

approx_count_distinct
-----------------------
               1000422

Oturum düzeyinde hassasiyeti 20 olarak ayarlayarak hesaplayın:

SET hg_experimental_approx_count_distinct_precision = 20;
SELECT APPROX_COUNT_DISTINCT ( O_CUSTKEY ) FROM ORDERS;

Sonuç:

 approx_count_distinct
-----------------------
                998854

APPROX_PERCENTILE

Hologres V3.1 ve sonraki sürümlerde desteklenir.

Rezervuar örnekleme (en fazla 8.192 öğe) kullanarak sayısal bir sütunun yaklaşık yüzdelik dilimini döndürür.

APPROX_PERCENTILE (fraction) WITHIN GROUP (ORDER BY sort_expression)

Parametreler

Parametre Açıklama
fraction Gerekli. 0 ile 1 arasında bir sabit değer. Örneğin, 0.5 medyanı temsil eder.
sort_expression Gerekli. Yüzdelik dilimin hesaplanacağı sütun. Sıralanabilir olmalıdır.

Örnek

Bir maaş sütunu için Q1, medyan ve Q3 değerlerini hesaplayın:

SELECT
  APPROX_PERCENTILE(0.25) WITHIN GROUP (ORDER BY salary) AS q1,
  APPROX_PERCENTILE(0.5)  WITHIN GROUP (ORDER BY salary) AS median,
  APPROX_PERCENTILE(0.75) WITHIN GROUP (ORDER BY salary) AS q3
FROM employees;

ARRAY_AGG

Herhangi bir ifadenin değerlerini bir dizi halinde toplar.

ARRAY_AGG(expression)

Parametreler

Parametre Açıklama
expression Gerekli. JSON, JSONB, TIMETZ, INTERVAL, INET, OID, UUID ve dizi türleri dışındaki herhangi bir veri türündeki ifade.

Dönüş değeri

ARRAY türü.

Örnek

SELECT ARRAY_AGG(c1) FROM example_table;

Sonuç:

 array_agg
-----------
 {2,1}

AVG

NULL olmayan değerlerin ortalamasını döndürür.

AVG(expression)

Parametreler

Parametre Açıklama
expression Gerekli. BIGINT, FLOAT8, FLOAT4 veya INT türünde bir ifade.

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT AVG(c7) FROM example_table;

Sonuç:

   avg
----------
 1.500000

BIT_AND

Tüm NULL olmayan değerler üzerinde bit düzeyinde AND işlemi gerçekleştirir.

BIT_AND(expression)

Parametreler

Parametre Açıklama
expression Gerekli. BIGINT veya INT türünde bir ifade.

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT BIT_AND(c1) FROM example_table;

Sonuç:

 bit_and
---------
       0

BIT_OR

Tüm NULL olmayan değerler üzerinde bit düzeyinde OR işlemi gerçekleştirir.

BIT_OR(expression)

Parametreler

Parametre Açıklama
expression Gerekli. BIGINT veya INT türünde bir ifade.

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT BIT_OR(c1) FROM example_table;

Sonuç:

 bit_or
--------
      3

BOOL_AND

Bir Boolean ifadesinin tüm değerleri true ise TRUE döner; aksi takdirde FALSE döner.

BOOL_AND(bool)

Parametreler

Parametre Açıklama
bool Gerekli. BOOLEAN türünde bir ifade.

Dönüş değeri

BOOLEAN. Tüm değerler true ise t döner, aksi takdirde f döner.

Örnek

SELECT BOOL_AND(c2) FROM example_table;

Sonuç:

 bool_and
----------
 f

BOOL_OR

Bir Boolean ifadesinin herhangi bir değeri true ise TRUE döner; aksi takdirde FALSE döner.

BOOL_OR(bool)

Parametreler

Parametre Açıklama
bool Gerekli. BOOLEAN türünde bir ifade.

Dönüş değeri

BOOLEAN. Herhangi bir değer true ise t döner, aksi takdirde f döner.

Örnek

SELECT BOOL_OR(c2) FROM example_table;

Sonuç:

 bool_or
---------
 t

CORR

İki değişken arasındaki korelasyon katsayısını hesaplar. Her iki parametre de DOUBLE PRECISION, FLOAT veya FLOAT8 türünde olmalıdır.

CORR(Y, X)

Parametreler

Parametre Açıklama
Y Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade (bağımlı değişken).
X Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade (bağımsız değişken).

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT CORR(c6, c7) FROM example_table;

COUNT

Satır sayısını veya bir ifadedeki NULL olmayan değerlerin sayısını döndürür.

  • COUNT(*) NULL değerler dahil tüm satırları sayar.

  • COUNT(expression) yalnızca NULL olmayan değerleri sayar.

-- Count all rows, including rows with NULL values.
COUNT(*)

-- Count only non-NULL input values.
COUNT(expression)

Parametreler

Parametre Açıklama
* Sütunlarda NULL içeren satırlar dahil tüm satırları sayar.
expression Gerekli. NULL olmayan BIGINT veya NUMERIC türünde bir ifade. İfadenin NULL olduğu satırlar sayılmaz.

Dönüş değeri

BIGINT.

Örnek

SELECT COUNT(*) FROM example_table;

Sonuç:

 count
-------
     2

COVAR_POP

İki değişkenin popülasyon kovaryansını hesaplar.

COVAR_POP(Y, X)

Parametreler

Parametre Açıklama
Y Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.
X Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT COVAR_POP(c6, c7) FROM example_table;

Sonuç:

      covar_pop
---------------------
 3.5527136788005e-15

COVAR_SAMP

İki değişkenin örneklem kovaryansını hesaplar.

COVAR_SAMP(Y, X)

Parametreler

Parametre Açıklama
Y Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.
X Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT COVAR_SAMP(c6, c7) FROM example_table;

Sonuç:

     covar_samp
--------------------
 7.105427357601e-15

EVERY

Bir Boolean ifadesinin tüm değerleri true ise TRUE döner; aksi takdirde FALSE döner.

EVERY(bool)

Parametreler

Parametre Açıklama
bool Gerekli. BOOLEAN türünde bir ifade.

Dönüş değeri

BOOLEAN. Tüm değerler true ise t döner, aksi takdirde f döner.

Örnek

SELECT EVERY(c2) FROM example_table;

Sonuç:

 every
-------
 f

MAX

En büyük değeri döndürür.

MAX(expression)

Parametreler

Parametre Açıklama
expression Gerekli. BIGINT, FLOAT8, FLOAT4, INT veya NUMERIC türünde bir ifade.

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT MAX(c1) FROM example_table;

Sonuç:

 max
-----
   2

MAX_BY

Hologres V1.3.36 ve sonraki sürümlerde desteklenir. Daha eski sürümler için bkz. Daha fazla çevrimiçi desteği nasıl alabilirsiniz?

y sütunundaki en büyük değere sahip satırı bulur ve x sütunundan karşılık gelen değeri döndürür. Örneğin, bir tabloda name ve cost sütunları varsa MAX_BY(name, cost) en yüksek maliyete sahip öğenin adını döndürür.

Sayısal türler sayısal değere göre karşılaştırılır. Sayısal olmayan türler sözlük sıralama düzenine göre karşılaştırılır.

MAX_BY(x, y)

Parametreler

Parametre Açıklama
y Gerekli. En büyük değerin bulunacağı sütun. y değeri NULL olan satırlar hariç tutulur.
x Gerekli. Maksimum y değerine karşılık gelen değerin döndürüleceği sütun.

Dönüş değeri

  • y değerinin maksimum olduğu satırdaki x değerini döndürür.

  • y içindeki tüm değerler NULL ise NULL döner.

  • Birden fazla satır maksimum y değerini paylaşıyorsa karşılık gelen x değerlerinin en büyüğünü döndürür.

Örnek

-- Sample data
DROP TABLE IF EXISTS test;
CREATE TABLE IF NOT EXISTS test (
    id INT,
    name TEXT,
    cost INT
);
INSERT INTO test
    VALUES (1, 'a', 100), (1, 'aa', 200), (1, 'aaa', 300), (2, 'b', 150), (2, 'bb', 300), (3, 'c', 150), (3, 'cc', 50);

En yüksek maliyete karşılık gelen adı döndürün. Birden fazla satır maksimum maliyeti (300) paylaştığından işlev bu satırlar arasındaki maksimum name değerini döndürür:

SELECT max_by(name, cost) FROM test;

Sonuç:

 max_by
--------
 aaa

MIN

En küçük değeri döndürür.

MIN(expression)

Parametreler

Parametre Açıklama
expression Gerekli. BIGINT, FLOAT8, FLOAT4, INT veya NUMERIC türünde bir ifade.

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT MIN(c1) FROM example_table;

Sonuç:

 min
-----
   1

MIN_BY

Hologres V1.3.36 ve sonraki sürümlerde desteklenir. Daha eski sürümler için bkz. Daha fazla çevrimiçi desteği nasıl alabilirsiniz?

y sütunundaki en küçük değere sahip satırı bulur ve x sütunundan karşılık gelen değeri döndürür. Örneğin, bir tabloda name ve cost sütunları varsa MIN_BY(name, cost) en düşük maliyete sahip öğenin adını döndürür.

Sayısal türler sayısal değere göre karşılaştırılır. Sayısal olmayan türler sözlük sıralama düzenine göre karşılaştırılır.

MIN_BY(x, y)

Parametreler

Parametre Açıklama
y Gerekli. En küçük değerin bulunacağı sütun. y değeri NULL olan satırlar hariç tutulur.
x Gerekli. Minimum y değerine karşılık gelen değerin döndürüleceği sütun.

Dönüş değeri

  • y değerinin minimum olduğu satırdaki x değerini döndürür.

  • y içindeki tüm değerler NULL ise NULL döner.

  • Birden fazla satır minimum y değerini paylaşıyorsa karşılık gelen x değerlerinin en küçüğünü döndürür.

Örnek

-- Sample data
DROP TABLE IF EXISTS test;
CREATE TABLE IF NOT EXISTS test (
    id INT,
    name TEXT,
    cost INT
);
INSERT INTO test
    VALUES (1, 'a', 100), (1, 'aa', 200), (1, 'aaa', 300), (2, 'b', 150), (2, 'bb', 300), (3, 'c', 150), (3, 'cc', 50);

En düşük maliyete karşılık gelen adı döndürün:

SELECT MIN_BY(name, cost) FROM test;

Sonuç:

min_by
--------
 cc
(1 row)

REGR_AVGX

Bağımsız değişkenin (X) ortalamasını hesaplar.

REGR_AVGX(Y, X)

Parametreler

Parametre Açıklama
Y Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.
X Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT REGR_AVGX(c6, c7) FROM example_table;

Sonuç:

 regr_avgx
-----------
       4.8

REGR_AVGY

Bağımlı değişkenin (Y) ortalamasını hesaplar.

REGR_AVGY(Y, X)

Parametreler

Parametre Açıklama
Y Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.
X Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT REGR_AVGY(c6, c7) FROM example_table;

Sonuç:

 regr_avgy
-----------
         6

REGR_COUNT

Her iki girişin de NULL olmadığı satır sayısını döndürür.

REGR_COUNT(Y, X)

Parametreler

Parametre Açıklama
Y Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.
X Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.

Dönüş değeri

BIGINT.

Örnek

SELECT REGR_COUNT(c6, c7) FROM example_table;

Sonuç:

 regr_count
------------
          2

REGR_R2

Korelasyon katsayısının karesini (R²) hesaplar.

REGR_R2(Y, X)

Parametreler

Parametre Açıklama
Y Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.
X Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT REGR_R2(c6, c7) FROM example_table;

Sonuç:

 regr_r2
---------
       1

REGR_INTERCEPT

(Y, X) çiftleri tarafından belirlenen en küçük kareler uyumlu doğrusal denklemin y eksenini kestiği noktayı hesaplar.

REGR_INTERCEPT(Y, X)

Parametreler

Parametre Açıklama
Y Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.
X Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT REGR_INTERCEPT(c6, c7) FROM example_table;

Sonuç:

 regr_intercept
----------------
              6

REGR_SLOPE

En küçük kareler uyumlu doğrusal denklemin eğimini hesaplar.

REGR_SLOPE(Y, X)

Parametreler

Parametre Açıklama
Y Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.
X Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT REGR_SLOPE(c6, c7) FROM example_table;

Sonuç:

      regr_slope
----------------------
 7.34031751818285e-16

REGR_SXX

Bağımsız değişkenin (X) karelerinin toplamını şu şekilde hesaplar: sum(X^2) - sum(X)^2/N.

REGR_SXX(Y, X)

Parametreler

Parametre Açıklama
Y Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.
X Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT REGR_SXX(c6, c7) FROM example_table;

Sonuç:

 regr_sxx
----------
     9.68

REGR_SXY

Bağımsız değişken (X) ile bağımlı değişkenin (Y) çarpımlarının toplamını şu şekilde hesaplar: sum(X*Y) - sum(X) * sum(Y)/N.

REGR_SXY(Y, X)

Parametreler

Parametre Açıklama
Y Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.
X Gerekli. DOUBLE PRECISION, FLOAT veya FLOAT8 türünde bir ifade.

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT REGR_SXY(c6, c7) FROM example_table;

Sonuç:

      regr_sxy
--------------------
 7.105427357601e-15

SUM

Tüm değerlerin toplamını döndürür.

SUM(expression)

Parametreler

Parametre Açıklama
expression Gerekli. BIGINT, FLOAT8, FLOAT4, INT veya NUMERIC türünde bir ifade.

Dönüş değeri

Girişle aynı veri türü.

Örnek

SELECT SUM(c1) FROM example_table;

Sonuç:

 sum
-----
   3

STDDEV

Örneklem standart sapmasını döndürür.

STDDEV(expression)

Parametreler

Parametre Açıklama
expression Gerekli. INT, NUMERIC veya FLOAT8 türünde bir ifade.

Dönüş değeri

NUMERIC veya FLOAT8.

Örnek

SELECT STDDEV(c1) FROM example_table;

Sonuç:

    stddev
--------------
 0.7071067811

STDDEV_POP

Popülasyon standart sapmasını döndürür.

STDDEV_POP(expression)

Parametreler

Parametre Açıklama
expression Gerekli. INT, NUMERIC veya FLOAT8 türünde bir ifade.

Dönüş değeri

NUMERIC veya FLOAT8.

Örnek

SELECT STDDEV_POP(c1) FROM example_table;

Sonuç:

  stddev_pop
--------------
 0.5000000000

STDDEV_SAMP

Örneklem standart sapmasını döndürür. STDDEV ile eşdeğerdir.

STDDEV_SAMP(expression)

Parametreler

Parametre Açıklama
expression Gerekli. INT, NUMERIC veya FLOAT8 türünde bir ifade.

Dönüş değeri

NUMERIC veya FLOAT8.

Örnek

SELECT STDDEV_SAMP(c1) FROM example_table;

Sonuç:

 stddev_samp
--------------
 0.7071067812

STRING_AGG

NULL olmayan değerleri belirtilen bir ayırıcı ile tek bir dizede birleştirir.

STRING_AGG(<expression> TEXT, <delimiter> TEXT)

Parametreler

Parametre Açıklama
expression Gerekli. Kaynak dize (TEXT).
delimiter Gerekli. Ayırıcı dize (TEXT).

Dönüş değeri

TEXT.

Örnek

SELECT STRING_AGG(c5, '-') FROM example_table;

Sonuç:

 string_agg
------------
 3-4

UNIQ

Hologres V1.3 ve sonraki sürümlerde desteklenir. Daha eski sürümler için bkz. Yükseltmeye hazırlanırken karşılaşılan yaygın hatalar veya Daha fazla çevrimiçi desteği nasıl alabilirsiniz? .

Bir sütun için distinct sayısını döndürür. UNIQ; sorgu bir GROUP BY yan tümcesi içerdiğinde ve GROUP BY alan değerleri veri çarpıklığı olmadan eşit dağıldığında COUNT DISTINCT'ten daha iyi performans gösterir.

UNIQ ( <column> )

Parametreler

Parametre Açıklama
column Gerekli. Distinct sayısının hesaplanacağı sütun. Desteklenen türler: SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION, TEXT, VARCHAR, TIMESTAMP, TIMESTAMPTZ, DATE, TIMETZ ve UUID.

Kullanım notları

  • UNIQ, COUNT DISTINCT'e kıyasla daha az bellek kullanır ve COUNT DISTINCT bellek yetersizliği hatalarına neden olduğunda yararlı bir alternatiftir.

  • UNIQ, GROUP BY anahtarının yüksek kardinaliteye sahip olduğu durumlarda COUNT DISTINCT'ten daha iyi performans gösterir.

  • UNIQ yalnızca sorguda bir GROUP BY yan tümcesi olduğunda ve değerler eşit dağıldığında COUNT DISTINCT'ten daha iyi performans gösterir. GROUP BY yan tümcesi olmadan veya veri çarpıklığı durumunda performans avantajı yoktur.

  • Hologres V2.1'den itibaren COUNT DISTINCT; tek ve çoklu COUNT DISTINCT işlevleri, veri çarpıklığı ve GROUP BY yan tümcesi içermeyen sorgular dahil olmak üzere çeşitli senaryolarda önemli ölçüde optimize edilmiştir. Çoğu durumda sorguları manuel olarak UNIQ kullanacak şekilde yeniden yazmaya gerek kalmamıştır. Ayrıntılar için bkz. Count Distinct optimizasyonu.

Örnek

Aşağıdaki örnekler, TPC-H genel veri kümesindeki ORDERS tablosunu kullanır. Tablo kurulum betiği için bkz. APPROX_COUNT_DISTINCT.

ORDERS tablosundaki O_CUSTKEY distinct sayısını hesaplayın:

SELECT UNIQ ( O_CUSTKEY ) FROM ORDERS;

Sonuç:

  uniq
--------
 999982

Her bir O_ORDERSTATUS için distinct O_CUSTKEY sayısını hesaplayın:

SELECT O_ORDERSTATUS, UNIQ ( O_CUSTKEY ) FROM ORDERS GROUP BY O_ORDERSTATUS;

Sonuç:

 o_orderstatus |  uniq
---------------+--------
 P             | 313478
 F             | 996258
 O             | 996400

VARIANCE

Örneklem varyansını döndürür.

VARIANCE(expression)

Parametreler

Parametre Açıklama
expression Gerekli. INT veya NUMERIC türünde bir ifade.

Dönüş değeri

NUMERIC.

Örnek

SELECT VARIANCE(c1) FROM example_table;

Sonuç:

   variance
--------------
 0.5000000000

VAR_POP

Popülasyon varyansını döndürür.

VAR_POP(expression)

Parametreler

Parametre Açıklama
expression Gerekli. FLOAT8, INT veya NUMERIC türünde bir ifade.

Dönüş değeri

NUMERIC veya FLOAT8.

Örnek

SELECT VAR_POP(c1) FROM example_table;

Sonuç:

   var_pop
--------------
 0.2500000000

VAR_SAMP

Örneklem varyansını döndürür.

VAR_SAMP(expression)

Parametreler

Parametre Açıklama
expression Gerekli. INT, FLOAT8 veya NUMERIC türünde bir ifade.

Dönüş değeri

NUMERIC veya FLOAT8.

Örnek

SELECT VAR_SAMP(c1) FROM example_table;

Sonuç:

   var_samp
--------------
 0.5000000000