SQL分组统计怎么做_完整逻辑拆解助力系统化掌握【技巧】

admin 百科 25
SQL分组统计需严格遵循四步逻辑:先用WHERE筛选原始行(仅支持原始字段),再用GROUP BY划分数据组(非聚合列须全部列出),接着用HAVING筛选组结果(可使用聚合函数),最后用聚合函数与ORDER BY汇总排序。

SQL分组统计怎么做_完整逻辑拆解助力系统化掌握【技巧】-第1张图片-佛山资讯网

SQL分组统计不是“写个GROUP BY就完事”,而是一套有严格执行顺序、明确语义边界和常见陷阱的逻辑体系。掌握它,关键在理清“谁先筛、谁归组、谁后筛、谁来汇总”这四步关系。

分组前:用WHERE筛选原始行

WHERE是第一道过滤关,作用于分组之前,只能使用原始字段,不能用AVG、COUNT这类聚合函数。

  • 比如查“2024年入职的员工”,写 WHERE hire_date >= '2024-01-01'
  • 如果误写成 WHERE AVG(sal) > 5000,直接报错——因为此时还没分组,更没算出平均值
  • 它决定“哪些人能进组”,不参与后续分组计算

分组中:用GROUP BY划定数据块

GROUP BY按指定列值把行聚合成一个个逻辑组,每组对应SELECT中一个结果行。

  • 分组列必须出现在SELECT列表中(除非被聚合函数包裹)
  • 多字段分组如 GROUP BY deptno, job,表示先按部门再按职位细分
  • NULL值会被单独归为一组(不是被忽略),如需合并处理可用 COALESCE(deptno, 0)
  • SELECT里所有非聚合列,都得在GROUP BY中完整列出,否则语法报错

分组后:用HAVING筛选组结果

HAVING是第二道过滤关,作用于分组完成、聚合计算之后,可安全使用AVG、COUNT等函数。

标签: 聚合函数

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~

趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官