Tüm Ürünler
Search
Belge Merkezi

MaxCompute:PERCENTILE_DISC

Son Güncelleme:Oct 04, 2026

PERCENTILE_DISC belirli bir yüzdelik dilim değerini hesaplar. Belirtilen sütundaki değerleri artan düzende sıralar ve kümülatif dağılımı belirtilen yüzdelik dilime eşit veya ondan büyük olan ilk değeri döndürür.

PERCENTILE_DISC hem bir toplama işlevi hem de bir pencere işlevidir.

Sözdizimi

-- Aggregate function
PERCENTILE_DISC(<col_name>, DOUBLE <percentile>[, BOOLEAN <isIgnoreNull>])

-- Window function
PERCENTILE_DISC(<col_name>, DOUBLE <percentile>[, BOOLEAN <isIgnoreNull>]) OVER ([partition_clause] [orderby_clause])

Parametreler


Parametre


Gerekli


Tür


Açıklama


col_name


Evet


—


Sıralanabilir değerler içeren bir sütun.


percentile


Evet


DOUBLE sabiti


Hedef yüzdelik dilim, [0, 1] aralığında.


isIgnoreNull


Hayır


Boolean sabiti


NULL değerlerinin yoksayılıp yoksayılmayacağını belirtir. Varsayılan: TRUE. Sıralama sırasında NULL değerinin en küçük değer olarak ele alınması için FALSE olarak ayarlayın.


partition_clause, orderby_clause


—


—


Bkz. Window Functions Overview.

Dönüş değeri

Yüzdelik dilim değerini döndürür. Veri türü, col_name öğesinin veri türüyle eşleşir.

Örnekler

Örnek 1: NULL değerlerini yoksayarak (varsayılan davranış) yüzdelik dilim değerlerini hesaplama

SELECT
  x,
  PERCENTILE_DISC(x, 0) OVER() AS min,
  PERCENTILE_DISC(x, 0.5) OVER() AS median,
  PERCENTILE_DISC(x, 1) OVER() AS max
FROM VALUES('c'),(NULL),('b'),('a') AS tbl(x);

Sonuç:

+------------+------------+------------+------------+
| x          | min        | median     | max        |
+------------+------------+------------+------------+
| c          | a          | b          | c          |
| NULL       | a          | b          | c          |
| b          | a          | b          | c          |
| a          | a          | b          | c          |
+------------+------------+------------+------------+

NULL değeri sıralamadan hariç tutulur. NULL olmayan üç değer a, b, c artan düzende sıralandığından 0. yüzdelik dilim a, 50. yüzdelik dilim b ve 100. yüzdelik dilim c olur.

Örnek 2: NULL değerini en küçük değer olarak ele alarak yüzdelik dilim değerlerini hesaplama

SELECT
  x,
  PERCENTILE_DISC(x, 0, false) OVER() AS min,
  PERCENTILE_DISC(x, 0.5, false) OVER() AS median,
  PERCENTILE_DISC(x, 1, false) OVER() AS max
FROM VALUES('c'),(NULL),('b'),('a') AS tbl(x);

Sonuç:

+------------+------------+------------+------------+
| x          | min        | median     | max        |
+------------+------------+------------+------------+
| c          | NULL       | a          | c          |
| NULL       | NULL       | a          | c          |
| b          | NULL       | a          | c          |
| a          | NULL       | a          | c          |
+------------+------------+------------+------------+

isIgnoreNull parametresi false olarak ayarlandığında NULL değeri a, b ve c değerlerinin altında sıralanır. Bu durumda 0. yüzdelik dilim NULL olur ve 50. yüzdelik dilim b değerinden a değerine kayar.

İlgili işlevler