SQL

Median with PERCENTILE_CONT

admin by @admin ADMIN
Jun 13, 2026
May 31, 2026
Public
0 0 up · 0 down Sign in to vote
SQL has no `MEDIAN()` — use `PERCENTILE_CONT(0.5) WITHIN GROUP`. The same function gets you P95, P99, quartiles, etc. for latency analysis.
SQL
Raw
-- Median order amount
SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY amount) AS median_amount
FROM   orders;

-- Latency percentiles (classic SLO query)
SELECT
  PERCENTILE_CONT(0.50) WITHIN GROUP (ORDER BY duration_ms) AS p50,
  PERCENTILE_CONT(0.90) WITHIN GROUP (ORDER BY duration_ms) AS p90,
  PERCENTILE_CONT(0.95) WITHIN GROUP (ORDER BY duration_ms) AS p95,
  PERCENTILE_CONT(0.99) WITHIN GROUP (ORDER BY duration_ms) AS p99
FROM   request_logs
WHERE  endpoint = '/api/users'
  AND  ts >= NOW() - INTERVAL '1 day';

-- Per-group percentiles
SELECT endpoint,
       PERCENTILE_CONT(0.95) WITHIN GROUP (ORDER BY duration_ms) AS p95
FROM   request_logs
GROUP  BY endpoint
ORDER  BY p95 DESC;
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.