复习笔记
约 309 个字 预计阅读时间 1 分钟
SQL¶
聚合函数不能出现在 WHERE 后面,应该在 HAVING 后面
在中文里:
- “把薪水大于1万的人选出来” \(\rightarrow\) 这个“的”,主语是单个人(个体属性)。
- “把总人数大于5的部门选出来” \(\rightarrow\) 这个“的”,主语是一群人(集体属性)。
人类觉得这两个“的”一样,但 SQL 不是。
SQL 的工作流水线:写 SQL,顺序是:SELECT -> FROM -> WHERE -> GROUP BY -> HAVING。但数据库执行 SQL 时,它的阅读顺序是完全颠倒的:
FROM(把存数据的档案柜搬过来)WHERE(安检员:挨个检查单张个人简历)GROUP BY(带队长:把通过安检的人,按部门分出小组)HAVING(裁判长:审视分组后的整体数据)SELECT(把最终留下的数据写在报告上)
把你的大脑字典升级一下,把中文里的“的”,强行拆成两个词:
- 凡是能塞进 “XXX(单个人)的...” 句式的 \(\rightarrow\) 归给
WHERE(例如:张三的工资、李四的性别、王五的入职时间) - 凡是必须塞进 “XXX们(这帮人)的...” 句式的 \(\rightarrow\) 归给
HAVING(例如:开发部们的总人数、销售部们的平均业绩、男女生们的最高薪资)