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

存在以下 3 个错误。
1.使用了字符类型的列(product_name)作为 SUM 函数的参数。
>> 解答
SUM 函数只能使用数值类型的列作为参数。 2. WHERE 子句写在了 GROUP BY 子句之后。
>> 解答
WHERE 子句必须写在 GROUP BY 子句之前。 3. SELECT 子句中存在 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;

本习题中是登记日期(NULL 排在开头还是末尾会根据 DBMS 不同而不同,无需考虑)。因此我们能够推断出首先是按照登记日期的降序进行排序的。
接下来,对于日期相同的记录,例如同为“2009-09-20”的 3 条记录,可以看出是按照销售单价的升序进行排序的。
SELECT *
FROM Product
ORDER BY regist_date DESC, sale_price;
SQL基础教程(第2版)第3章 聚合与排序:练习题的更多相关文章
- 推荐《SQL基础教程(第2版)》中文PDF+源代码+习题答案
我认为<SQL基础教程(第2版)>非常适合数据库学习的初学者.论述的角度是读者的角度,会换位思考到读者在看到这一段时候会发出怎样的疑问,非常难得:原始数据的例题只有一道,但是可以反复从不同 ...
- 笔记-Python基础教程(第二版)第一章
第一章 快速改造:基础知识 01:整除.乘方 (Python3.0之前 如2.7版本) >>> 1/2 ==>0 1/2整除,普通除法: 解决办法1: 1.0/2.0 ==& ...
- SQL基础教程(第2版)第3章 聚合与排序:3-2 对表进行分组
第3章 聚合与排序:3-2 对表进行分组 ● 使用GROUP BY子句可以像切蛋糕那样将表分割.通过使用聚合函数和GROUP BY子句,可以根据“商品种类”或者“登记日期”等将表分割后再进行汇总.● ...
- SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章)
SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章) 示例数据库:点我 CHAPTER 08 数据修改 8.1 插入数据 8.1.1 INSERT VALUES 语句 8.1 ...
- [SQL基础教程] 5-1视图
[SQL基础教程] 5-1视图 视图和表 从SQL角度看视图就是一张表 视图与表的差别 表保存了实际的数据,视图保存的是SELECT语句: 视图的优点 节省存储空间: 将常用的Select 语句保存成 ...
- [SQL基础教程] 4-4 事务
[SQL基础教程] 4 数据更新 4-4 事务 事务 需要在同一处理单元中执行的一系列更新处理的集合 创建事务 事务开始语句; DML语句1; DML语句2; . . . 事务结束语句; 事务开始语句 ...
- [SQL基础教程] 4-3 数据的更新(UPDATE)
[SQL基础教程] C4 数据更新 4-3 数据的更新(UPDATE) UPDATE UPDATE <表名> SET <列名> = <表达式>; UPDATE &l ...
- [SQL基础教程] 4-2 数据删除(DELETE)
[SQL基础教程] C4 数据更新 4-2 数据删除(DELETE) DROP TABLE / DELETE DROP TABLE - 完全删除表 DELETE - 仅删除数据,保留表容器 DELET ...
- [SQL基础教程] 4-1 数据的插入(INSERT)
[SQL基础教程] C4 数据更新 4-1 数据的插入(INSERT) INSERT INSERT INTO <表名>(列1,列2...) VALUES(值1,值2...); 清单 用() ...
- [SQL基础教程] 3-4 对查询结果进行排序/ORDER BY
[SQL基础教程] 3-4 对查询结果进行排序/ORDER BY ORDER BY SELECT <列名1>,<列名2>,<列名2>... FROM ORDER B ...
随机推荐
- mysql合并结果集
- 解决使用xampp无法通过ip访问的问题
本地能通过127.0.0.1或者localhost访问,无法通过外网地址访问: win解决防火墙问题: 1.进入控制面板 -> 系统和安全 -> 2.window防火墙 - 允许其他程序通 ...
- 吴裕雄--天生自然java开发常用类库学习笔记:Iterator接口
import java.util.List ; import java.util.ArrayList ; import java.util.Iterator ; public class Iterat ...
- unity基础开发----Unity获取PC,Ios系统的mac地址等信息
在软件开发中可以会用到mac地址作为,设备的唯一标示,我们也可以通过unity获取,经测试pc,ios都可以但是安卓没有获取到. 代码如下: using UnityEngine; using Syst ...
- [百度之星]资格赛:IP聚合
保持着也不知道什么情怀,觉得到现在才能发出来.这道题做完之后看了其他人的代码,然后再看我的,不得不说,真是幼稚的很,尤其是输入这一块,都什么跟什么啊. 但相较于之前来说,不像以前慌张了,学会先思考再去 ...
- vSphere vSwitch网络属性配置详解
1.安全 混杂模式:把vSwitch当成是一个hub,同一台交换机上面所有的虚拟机都能接受到二层数据包. MAC地址更改:当vSwitch上面连接的某一个虚拟机MAC地址发生更改时,vSwitch是否 ...
- idea开发springboot 的mysql数据库连接问题
今天在家用idea进行springboot开发,前面一些坑相对避免了,但是到数据库这块总是连接不上,报错主要是: Access denied for user 'root'@'localhost' ( ...
- Linux gcc(ar命令)打包库到另一个库中的另外一种方法
最近的项目中需要在Libcurl写一个wrapper,最好的办法是把我的wrapper和libcurl包在一起,做一个新的静态库 但是很遗憾,直接用以下命令产生的libmywrapper.a 是不能用 ...
- 134-PHP子类重写父类方法,并调用父类方法
<?php class father{ //定义father类 public function method(){ //定义方法 echo '<br />father method' ...
- jQuery原理系列-css选择器实现
jQuery最强大的功能在于它可以通过css选择器查找元素,它的源码中有一半是sizzle css选择器引擎的代码,在html5规范出来之后,增加了document.querySelector和doc ...