请写出一条 SQL 语句,从访问记录表中统计每个页面的访问次数,并按照访问次数进行降序排列。
考察说明
考查对 SQL 分组聚合与排序的掌握,以及表结构理解。
回答思路
- 【回答框架 1】SQL 分组聚合通常采用 SELECT 页面, COUNT(*) 访问次数 FROM 访问记录表 GROUP BY 页面 的写法。COUNT(*) 统计每个分组内的记录条数,即每个页面的访问次数。
- 【回答框架 2】按访问次数从高到低排序使用 ORDER BY 访问次数 DESC。若使用聚合函数结果排序,可以直接引用别名,但部分数据库可能要求使用完整表达式,需注意兼容性。
- 【回答框架 3】若访问记录表存在重复记录表示多次访问,则 COUNT(*) 即可;若表结构包含用户标识等,考虑是否要按用户去重,但原题未明确,默认按原始记录数统计。
- 【回答框架 4】可考虑对页面字段建立索引以提升分组聚合效率,但数据量小或查询频率低时可忽略。
- 【关键点 1】使用 GROUP BY 对页面分组,COUNT(*) 统计次数。
- 【关键点 2】使用 ORDER BY 访问次数 DESC 降序排序。
- 【关键点 3】默认按记录数统计,不额外去重。
- 【易错点 1】容易忘记 GROUP BY 中必须包含所有非聚合列。
- 【易错点 2】ORDER BY 引用别名可能在部分数据库有限制,建议使用完整表达式或字段别名。
- 【易错点 3】若访问记录表很大,未考虑索引可能导致性能问题。