IntermediateWindow Functions

NTILE: quartile bucketing of salaries

The query

SQL
SELECT
  first_name,
  last_name,
  salary,
  NTILE(4) OVER (ORDER BY salary) AS quartile,
  CASE NTILE(4) OVER (ORDER BY salary)
    WHEN 1 THEN 'Q1 - Bottom 25%'
    WHEN 2 THEN 'Q2 - 25-50%'
    WHEN 3 THEN 'Q3 - 50-75%'
    WHEN 4 THEN 'Q4 - Top 25%'
  END AS quartile_label
FROM employees
ORDER BY salary;
Tested against PostgreSQL 16

Note

NTILE(n) divides rows into n equal buckets. Use for percentile bands, decile analysis.

Tables referenced