find the median in sql
# FOR TABLES WITH EVEN NUMBER OF ROWS
# For column1 in table1 with 'n' number of rows. Where 'n' is an even number.
# 1. Change all column1 and table1 to your column and table name.
# 2. Calculate (n/2)+1, where n=number of rows, and set it as LIMIT for t1.
SELECT AVG(t2.column1)
FROM (SELECT *
FROM (SELECT column1
FROM table1
ORDER BY column1
LIMIT (n/2)+1) AS t1
ORDER BY column1 DESC
LIMIT 2) AS t2;
4.67
3
SET @rowindex := -1;
SELECT
AVG(g.grade)
FROM
(SELECT @rowindex:=@rowindex + 1 AS rowindex,
grades.grade AS grade
FROM grades
ORDER BY grades.grade) AS g
WHERE
g.rowindex IN (FLOOR(@rowindex / 2) , CEIL(@rowindex / 2));
Thank you!
3
0
3.63
8
# FOR TABLES WITH ODD NUMBER OF ROWS
# For column1 in table1 with 'n' number of rows. Where 'n' is an odd number.
# 1. Change all column1 and table1 to your column and table name.
# 2. Calculate (n/2)+0.5, where n=number of rows, and set it as LIMIT for t1.
SELECT *
FROM (SELECT column1
FROM table1
ORDER BY column1
LIMIT (n/2)+0.5) AS t1
ORDER BY column1 DESC
LIMIT 1;
Thank you!
8
0
Are there any code examples left?
New code examples in category SQL