有些SQL的笔面试题中会出现一些要求众数、均值、中位数、四分位数等,我这里将我会的几种解法分享给大家,大家也可以在评论中继续补充!

(一)众数
如求员工工资的众数
1、使用having
SELECT salary,COUNT(*) AS cnt
FROM salaries
GROUP BY salary
HAVING count(*) >= ALL(SELECT COUNT(*) FROM salaries GROUP BY salary)
额外补充ALL、IN和ANY的用法
- IN:在范围内的值,只要有就true;
- ALL:与子查询返回的所有值比较为true,则返回true;
- ANY:与子查询返回的任何值比较为true,只有有一个成立,则返回true;
2、使用max
-- 写法一
CREATE VIEW max_a AS
SELECT salary,COUNT(*) AS cnt
FROM salaries
GROUP BY salary
SELECT sa