Aggregate

QUANTILE

DuckDBDuckDB

Menghitung nilai pada posisi kuantil tertentu dari distribusi data. Mendukung single quantile atau array of quantiles sekaligus.

Tipe hasil: Sama dengan tipe input (atau LIST jika input quantile adalah array)Diperbarui: 6 Jan 2026

Syntax

SQL
QUANTILE(expression, quantile) | QUANTILE(expression, [q1, q2, ...])

Parameter

expressionnumericwajib

Kolom atau ekspresi numerik yang akan dihitung kuantilnya

quantileDOUBLE atau LISTwajib

Posisi kuantil (0.0 sampai 1.0) atau array of quantiles

Contoh Penggunaan

Menghitung Quartiles

SQL
1SELECT
2 category,
3 QUANTILE(price, 0.25) as Q1,
4 QUANTILE(price, 0.50) as median,
5 QUANTILE(price, 0.75) as Q3
6FROM products
7GROUP BY category;

Menghitung quartile 1, median, dan quartile 3 harga per kategori.

Hasil
categoryQ1medianQ3
Electronics50000025000008000000
Clothing150000350000750000

Multiple Quantiles dengan Array

SQL
1SELECT
2 region,
3 QUANTILE(salary, [0.1, 0.5, 0.9]) as salary_distribution
4FROM employees
5GROUP BY region;

Menghitung persentil 10, 50, dan 90 sekaligus dengan array.

Hasil
regionsalary_distribution
Jakarta[8000000, 15000000, 35000000]
Surabaya[6000000, 12000000, 25000000]

Percentile untuk Response Time

SQL
1SELECT
2 endpoint,
3 QUANTILE(response_ms, 0.50) as p50,
4 QUANTILE(response_ms, 0.90) as p90,
5 QUANTILE(response_ms, 0.99) as p99,
6 MAX(response_ms) as max_response
7FROM api_logs
8WHERE log_date = CURRENT_DATE
9GROUP BY endpoint
10ORDER BY p99 DESC;

Analisis latency dengan p50, p90, dan p99 untuk monitoring SLA.

Hasil
endpointp50p90p99max_response
/api/search451203501250
/api/users123585320
/api/health251045