SQL基础教程(第2版)第3章 聚合与排序:练习题

Posted 绍耕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL基础教程(第2版)第3章 聚合与排序:练习题相关的知识,希望对你有一定的参考价值。

存在以下 3 个错误。
1.使用了字符类型的列(product_name)作为 SUM 函数的参数。
>> 解答
SUM 函数只能使用数值类型的列作为参数。

2WHERE 子句写在了 GROUP BY 子句之后。
>> 解答
WHERE 子句必须写在 GROUP BY 子句之前。

3SELECT 子句中存在 GROUP BY 子句中未指定的列(product_id)。
>> 解答
使用 GROUP BY 子句时,书写在 SELECT 子句中的列有很多限制。 GROUP BY
子句中未指定的列不能书写在 SELECT 子句之中。


在 WHERE 子句中指定 regist_date 的大小关系作为条件并没有什么问题。
存在以下 3 个错误

子句的书写顺序 ,1. SELECT → 2. FROM → 3. WHERE → 4. GROUP BY


 

SELECT product_type, SUM(sale_price), SUM(purchase_price)
  FROM Product
 GROUP BY product_type
HAVING SUM(sale_price) > SUM(purchase_price) * 1.5;
View Code

本习题中是登记日期(NULL 排在开头还是末尾会根据 DBMS 不同而不同,无需考虑)。因此我们能够推断出首先是按照登记日期的降序进行排序的。
接下来,对于日期相同的记录,例如同为“2009-09-20”的 3 条记录,可以看出是按照销售单价的升序进行排序的。

SELECT *
  FROM Product
 ORDER BY regist_date DESC, sale_price;
View Code

以上是关于SQL基础教程(第2版)第3章 聚合与排序:练习题的主要内容,如果未能解决你的问题,请参考以下文章

SQL基础教程(第2版)第3章 聚合与排序:3-2 对表进行分组

SQL基础教程(第2版)第3章 聚合与排序:3-4 对查询结果进行排序

SQL基础教程(第2版)第3章 聚合与排序:3-1 对表进行聚合查询

SQL基础教程(第2版)第8章 SQL高级处理:8-1 窗口函数

SQL基础教程(第2版)第4章 数据更新:练习题

SQL基础教程(第2版)第5章 复杂查询:练习题