PERCENTILE_CONT işlevi, doğrusal enterpolasyon kullanarak kesin bir yüzdelik dilim hesaplar. Bir sütundaki değerleri artan düzende sıralar ve belirtilen percentile için enterpolasyon değeri döndürür.
Söz dizimi
-- As an aggregate function
PERCENTILE_CONT(<col_name>, DOUBLE <percentile>[, BOOLEAN <isIgnoreNull>])
-- As a window function
PERCENTILE_CONT(<col_name>, DOUBLE <percentile>[, BOOLEAN <isIgnoreNull>]) OVER ([partition_clause] [orderby_clause])
Parametreler
col_name: Gereklidir. DOUBLE veya DECIMAL türünde bir sütun.
percentile: Gereklidir. [0, 1] aralığında bir DOUBLE sabiti.
isIgnoreNull: İsteğe bağlıdır. NULL değerlerin yoksayılıp yoksayılmayacağını belirten bir BOOLEAN sabitidir. Varsayılan değer TRUE'dur. FALSE olarak ayarlandığında NULL değerler minimum değer olarak değerlendirilir.
partition_clause ve orderby_clause: Ayrıntılar için bkz. Window Functions.
Dönüş değeri
Hesaplanan yüzdelik dilimi DOUBLE türünde döndürür.
Örnekler
-
Örnek 1: NULL değerleri yoksayarak bir pencere içindeki kesin yüzdelik dilimleri hesaplayın.
SELECT PERCENTILE_CONT(x, 0) OVER() AS min, PERCENTILE_CONT(x, 0.01) OVER() AS percentile1, PERCENTILE_CONT(x, 0.5) OVER() AS median, PERCENTILE_CONT(x, 0.9) OVER() AS percentile90, PERCENTILE_CONT(x, 1) OVER() AS max FROM VALUES(0D),(3D),(NULL),(1D),(2D) AS tbl(x) LIMIT 1; -- The following result is returned: +------------+-------------+------------+--------------+------------+ | min | percentile1 | median | percentile90 | max | +------------+-------------+------------+--------------+------------+ | 0.0 | 0.03 | 1.5 | 2.7 | 3.0 | +------------+-------------+------------+--------------+------------+ -
Örnek 2: NULL değerlerini minimum değer olarak ele alarak bir pencere içindeki kesin yüzdelik dilimleri hesaplayın.
SELECT PERCENTILE_CONT(x, 0, false) OVER() AS min, PERCENTILE_CONT(x, 0.01, false) OVER() AS percentile1, PERCENTILE_CONT(x, 0.5, false) OVER() AS median, PERCENTILE_CONT(x, 0.9, false) OVER() AS percentile90, PERCENTILE_CONT(x, 1, false) OVER() AS max FROM VALUES(0D),(3D),(NULL),(1D),(2D) AS tbl(x) LIMIT 1; -- The following result is returned: +------------+-------------+------------+--------------+------------+ | min | percentile1 | median | percentile90 | max | +------------+-------------+------------+--------------+------------+ | NULL | 0.0 | 1.0 | 2.6 | 3.0 | +------------+-------------+------------+--------------+------------+
İlgili işlevler
PERCENTILE_CONT, bir toplama işlevi veya pencere işlevi olarak kullanılabilir.
Birden çok kayıtta verileri toplayan diğer işlevler için bkz. Aggregate Functions.
Toplama ve sıralama gibi bir satır penceresi üzerinde hesaplama yapan diğer işlevler için bkz. Window Functions.