SQL笔试题解析:经典问题与解答

需积分: 12 17 下载量 128 浏览量 更新于2024-10-13 1 收藏 6KB TXT 举报
"这篇文档主要涵盖了SQL的经典面试题和答案,旨在帮助准备数据库相关笔试的读者。内容包括但不限于分组查询(GROUP BY)以及如何统计特定条件的数据。同时,文档中通过示例展示了如何进行多条件查询和数据聚合操作。" 在SQL中,GROUP BY语句是用于将数据分组的关键字,它允许我们根据一个或多个列对数据进行分类,然后对每个组应用聚合函数,如COUNT(), SUM(), AVG(), MAX() 或 MIN()。在给出的部分内容中,可以看到有关GROUP BY的问题,比如统计某日期下' Johnston'出现的次数和空值出现的次数。这通常涉及到数据的计数和分类。 1) 第一个问题使用了CASE WHEN语句结合GROUP BY来计算每天' Johnston'和空值的总数。CASE WHEN是一个条件判断语句,当满足条件时返回一个值,否则返回另一个值。在这个例子中,它用来区分' Johnston'和非' Johnston'记录,并进行计数。 2) 第二个问题通过内连接两个子查询来达到相同的目的。第一个子查询计算' Johnston'的总数,第二个子查询计算空值的总数,然后通过它们的rq(日期)字段相等来进行连接,从而得到每天的统计结果。 3) 第三个问题展示了一个更复杂的查询,它涉及到了两个表的联接。这里,a和b分别代表了两个子查询的结果,分别计算了col002为' Johnston'和为空的记录数,然后通过col001字段匹配,实现数据的聚合。 在SQL中,多条件查询和数据过滤是常见的需求。例如,问题2提到的"亨特"问题,可能需要在满足A条件时选择B,或者在满足B条件时选择A,或者同时满足A、B、C三个条件。这通常需要用到WHERE子句,以及AND, OR逻辑运算符,有时也需要用到IN, NOT IN, BETWEEN, LIKE等条件表达式。 这个文档提供的SQL面试题涵盖了基础的分组查询、条件统计以及复杂的联接操作,这些都是SQL数据库管理与数据分析中必备的技能。对于准备面试或提高SQL技能的人来说,这些题目和解答是非常有价值的参考资料。