请用 SQL 写出查询语句,返回所有总访问次数超过 2 的页面及其对应的总访问次数。
考察说明
考查对 SQL 分组聚合与 HAVING 过滤条件的掌握。
回答思路
- 【回答框架 1】使用 GROUP BY 按页面分组,对访问次数求和,得到每个页面的总访问次数。
- 【回答框架 2】使用 HAVING 子句过滤分组后的结果,保留总访问次数大于 2 的页面。
- 【回答框架 3】SELECT 子句中同时输出页面字段和聚合函数 SUM(访问次数) 的结果,不需要额外嵌套子查询。
- 【回答框架 4】注意 HAVING 是在分组后过滤,而 WHERE 是在分组前过滤,本题条件针对聚合结果,必须用 HAVING。
- 【关键点 1】GROUP BY 按页面分组,SUM 求总访问次数
- 【关键点 2】HAVING 用于过滤聚合后的结果,条件为 SUM(访问次数) > 2
- 【关键点 3】SELECT 中可包含分组字段和聚合函数
- 【易错点 1】误用 WHERE 过滤聚合条件,导致语法错误或结果错误
- 【易错点 2】忘记对非聚合字段进行分组,或分组字段不完整
- 【易错点 3】将 HAVING 与 WHERE 的位置或用法混淆