FORMULA & SQL / TOTALS
Median of a column.
Tested, not guessed.
The Excel and Google Sheets formula and the SQL query, each run on the rows below. Open this with your own data ↗
The example rows
| Row | A: Region | B: Rep | C: Amount | D: Order Date | E: Status | F: Customer |
|---|---|---|---|---|---|---|
| 2 | North | Ana | 1,200 | 2026-03-01 | Paid | Jo Smith |
| 3 | South | Ben | 450 | 2026-03-15 | Open | Raj Patel |
| 4 | North | Cy | 300 | 2026-04-02 | Paid | Lee Wong |
| 5 | East | Ana | 980.50 | 2026-04-20 | Paid | Mia Ross |
| 6 | North | Ben | 75 | 2026-05-05 | Open | Jo Smith |
| 7 | West | Dee | 1,640 | 2026-05-18 | Paid | Sam Okoro |
The formula
Excel
=MEDIAN(C2:C7)
MEDIAN(the Amount column (C2:C7)) — which finds the middle value.
Run on the example rows:
Result715.25
The SQL
PostgreSQL
SELECT AVG(amount) AS median_value FROM ( SELECT amount, ROW_NUMBER() OVER (ORDER BY amount) AS rn, COUNT(*) OVER () AS total FROM sales ) t WHERE rn IN ((total + 1) / 2, (total + 2) / 2)
Run on the example rows:
| median_value |
|---|
| 715.25 |
Other databases
SQLite
SELECT AVG(amount) AS median_value FROM ( SELECT amount, ROW_NUMBER() OVER (ORDER BY amount) AS rn, COUNT(*) OVER () AS total FROM sales ) t WHERE rn IN ((total + 1) / 2, (total + 2) / 2)
Snowflake
SELECT MEDIAN(amount) AS median_value FROM sales
Your own data
Paste your rows into the free tool and it writes this for your columns, then runs it on your data before you copy it. Open the tool ↗