SQL面试题集锦:聚合与分组操作

需积分: 9 2 下载量 175 浏览量 更新于2024-09-20 收藏 42KB DOC 举报
本文档主要介绍了两部分SQL面试题及其解答,展示了在实际编程中的应用场景。 第一部分是关于SQL聚合函数和分组查询的问题。题目要求根据`yearsalary`表中的数据,按年份对薪资进行累计求和,并只显示每一年的最高薪资。给出了两种解决方案: 1. 第一种方法使用了子查询和JOIN操作。通过`SELECT`语句,首先找出每个年份(`b.year`)的最大薪资,然后计算对应年份的总薪资(`sum(a.salary)`)。`GROUP BY`用于按年分组,`ORDER BY`则按照年份排序结果。 2. 第二种方法则是利用嵌套的子查询,外部查询分别获取每个日期的胜利和失败次数,内部子查询分别计算胜或负的情况,最后通过`INNER JOIN`合并两个子查询的结果。 第二部分的面试题涉及到数据统计和计数问题,目标是从一个包含比赛结果的数据表中,按照日期计算胜利(胜)和失败(负)的总次数。提供了三个不同的SQL解决方案: 1. 第一种方法直接使用`SUM()`函数和CASE WHEN语句,根据比赛结果字段`shengfu`计算胜和负的次数,然后按日期(`rq`)进行分组。 2. 第二种方法则是先分别对胜利和失败情况进行计数,然后使用`INNER JOIN`将两个计数结果进行合并,以日期为关联条件。 3. 第三种方法则采用了两个子查询,分别针对胜利和失败的计数,然后通过`FROM`子句将两个子查询的结果连接在一起,根据`col001`字段展示结果。 总结来说,这些SQL面试题考察了面试者对SQL聚合函数、分组、JOIN操作以及数据统计的理解和应用能力,对于数据库管理和数据分析岗位的求职者来说是非常重要的实践题型。熟练掌握这些技能有助于提升在实际工作中的数据处理效率和准确性。