A. GROUP BY WHERE HAVING
B. WHE REGROUP BY HAVING
C. WHE REHAVING GROUP BY
D. HAVING WHERE GROUP BY
第1题
A. GROUP BY WHERE HAVING
B. WHE REGROUP BY HAVING
C. WHE REHAVING GROUP BY
D. HAVING WHERE GROUP BY
第2题
A、使用having的同时不能使用where子句
B、having子句既可包含集函数作用的也可包括普通的列
C、having子句可以和group by 子句同时使用,也可以单独使用
D、使用having子句的作用是限定分组条件
E、Having子句和where子句是等同的
F、如果select语句中没有聚合函数的使用,就不能使用having子句
第3题
A、HAVING在查询语句中必须依赖于GROUP BY
B、WHERE子句用来限制SELECT语句从表中指定选取的行
C、GROUP BY子句用来分组WHERE子句的输出结果集
D、HAVING子句用来从分组的结果中筛选列
第5题
SELECT [ALL|DISTINCT]<目标列表达式 >[,< 目标列表达式>]...
FROM <表名或视图名 >[,<表名或视图名>]...
[WHERE<条件表达式>]
[GROUP BY <列名 1> [HAVING <条件表达式>]]
[ORDER BY〈列名 2> [ASC|DESC]]
其含义是:根据WHERE子句的条件表达式,从FROM子句中指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。如果有GROUP子句,则将结果按<列名1>的值进行分组,该属性列值相等的元组为一组。如果有ORDER子句,结果表要按<列名2>的值升序或降序排列。
某学校学生、教师及课程关系如下:
学生由学号唯一标识,学生相关信息包括姓名、性别、专业号和年龄等;
教师由工作证号唯一标识,教师相关信息包括姓名,年龄和所授课程号等;
课程由课程号唯一标识,课程相关信息包括课程名,学分,授课教师工作证号及授课时间等;
选课信息包括选课学生学号,课程号及考试成绩等。
根据关系模型完成数据库设计,包括数据库表、键值;(8分)
用SQL语句表达如下查询:(5分)
“张大民(教师名)”讲授的课程名和在这些课程中考试超过90分的学生的学号及姓名, 按分数的降序排列。
第6题
A. 这个语句是符合语法的
B. 这个语句是不能执行的,因为缺少HAVING子句
C. 这个语句是不能执行的,因为分组的条件列不在SELECT列表中
D. 这个语句是不能执行的,因为GROUP BY子句应该在主查询中,而不是在子查询中
E. 在主查询的WHERE条件中,不应该用IN,而应该用等号
第7题
实验三:复杂的单表查询 一、实验目的 1. 掌握SELECT语句的基本语法; 2. 掌握GROUP BY 子句的作用和使用方法; 3. 掌握HAVING子句的作用和使用方法; 4. 掌握聚集函数的作用和使用方法。 二、实验环境 已安装SQL Server 2005 或2012以及更高版本的计算机; 三、实验学时 2学时 四、实验要求 1. 了解单表的复杂查询和实现方式; 2. 完成实验报告; 五、实验原理 1. 在查询语句中用Group by子句进行分组; 2. 用Having子句对分组进行筛选。 3. 使用MAX(),MIN(),COUNT(),SUM(),AVG()等函数在查询结果集中生成汇总值。 六、实验示例 l 针对S_T数据库 1.计算出英语课程的平均分,最高分和最低分。 select avg(grade) 平均分,max(grade) 最高分,min(grade) 最低分 from sc where cno='1' 2. 查询数据表SC的学生的学号、课程号及成绩,对于成绩按以下规定显示:成绩在60分以下显示为不及格;60-79之间显示为良好;80以上显示为优秀。 SELECT Sno,Cno,GradeLevel= case when Grade<60 then '不及格' when grade>=60 and Grade<=79 then '良好' when grade>=80 then '优秀' end FROM SC l 针对bookshop数据库 1、统计员工表中薪水在40000-60000之间的人数 select count(*) as 人数 from employee where salary between 40000 and 60000 2、计算图书编号为'20652'图书的平均销售单价 select avg(unit_price) from sale_item where book_no='20652' 3、找出订单总金额超过300的订单信息,并按订单总金额从大到小排序。 Select order_no,sum(qty*unit_price) tot_amt from sale_item group by order_no having sum(qty*unit_price)>300 order by sum(qty*unit_price) desc 4、查询订购了三种以上产品的订单号。 Select order_no ,count(*) from sale_item Group by order_no Having count(*)>=3 七、实验内容及步骤 请使用T-SQL 语句实现以下操作: l 针对S_T数据库 1. 显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段“院系规模”,其中若该院系人数>=5则该字段值为“规模很大”,若该院系人数大于等于4小于5则该字段值为“规模一般”, 若该院系人数大于等于2小于4则该字段值为“规模稍小”,否则显示“规模很小”; 2. 显示学生信息表中的学生总人数及平均年龄,在结果集中列标题分别指定为“学生总人数,平均年龄”; 3. 显示选修的课程数大于3的各个学生的选修课程数; 4. 按课程号降序显示选修各个课程的总人数、最高成绩、最低成绩及平均成绩; 5. 列出有二门以上课程(含两门)不及格的学生的学号及不及格门数; l 针对bookshop数据库 1、在员工表employee中统计员工人数。 2、统计各部门员工的员工人数及平均薪水。 3、查询销售业绩超过300元的员工编号。 4、计算每种图书的销售数量总和与平均销售单价。 5、统计各部门不同性别、或各部门、或不同性别或所有员工的平均薪水。(在GROUP BY 子句中使用CUBE关键字) 6、统计各部门不同性别、或各部门或所有员工的平均薪水。(在GROUP BY 子句中使用ROLLUP关键字) 7、计算出一共销售了几种图书。 8、显示sale_item表中每种图书的订购金额总和,并且依据销售金额由大到小排列来显示出每一种图书的排行榜。 9、显示sale_item表中销售金额在300元以上的订单的销售数量,销售金额,并按降序排序。 10、统计各个类型图书的种类数量。 11、统计各个客户的消费金额。 12、统计各个客户的订单数量。 八、出现问题及解决办法 如:某些查询操作无法执行,如何解决?
第8题
A、Where
B、Having
C、Count
D、Group By
第9题
实验一:数据查询 一、实验目的 1. 掌握SELECT语句的基本语法和各子句的作用及使用方法; 2. 掌握使用SELECT语句对单表进行查询或对多个表进行连接查询、嵌套查询或集合查询; 二、实验环境 已安装SQL Server 2012或更高版本的计算机; 三、实验示例 l 针对bookshop数据库 1.查找表中所有姓刘的职工的工号,姓名,部门,薪水 select emp_no, emp_name, dept, salary from employee where emp_name like '刘%' 2、找出订单总金额超过300的订单信息,并按订单总金额从大到小排序。 select order_no,sum(qty*unit_price) tot_amt from sale_item group by order_no having sum(qty*unit_price)>300 order by sum(qty*unit_price) desc 3、检索单次销售数量大于2的图书的编号、书名、数量、销售单价。 select a.book_no, book_name, qty, unit_price from sale_item as a, books as b where a.book_no=b.book_no and qty>2 4、由employee表中查找出薪水最高的员工信息。 select * from employee where salary= (select max(salary ) from employee ) 5、用存在量词查找没有订货购书记录的客户名称 select cust_name from customer a where not exists (select * from sales b where a.cust_name=b.cust_name) 6、查询既选购了编号为“20652”又选购了编号“22082”的图书的订单编号。 select order_no from sale_item where book_no='20652' intersect select order_no from sale_item where book_no='22082 ' 四、实验内容及步骤 针对bookshop数据库,请使用T-SQL 语句实现以下操作:(要求用尽可能多的方法实现) 1、统计各部门员工的员工人数及平均薪水。 2、查询在订单中订购金额超过100元的顾客姓名及收件人。 3、统计所有图书的销售量和销售金额,并按销售金额的大小降序排序,显示信息包括(图书编号,书名,销售量,销售金额)。-- 提示:使用外连接,将没有售出的书也要显示出来。 4、在sales表中查找出销售金额最高的订单(订单号,销售金额,订购日期)。 5、在sales表中查找出订单金额大于“E0016业务员所接任一张订单的金额”的所有订单,并显示承接这些订单的业务员和该订单的金额。 6、查找同时购买了“数据库系统概论”和“java编程思想”这两本书的订单号。 7、找出目前业绩未超过300元的员工编号和姓名。 8、查询订购的产品至少包含了订单102893中所订购产品的订单。 9、查询“业务”部门并且工资超过40000的员工编号。 10、 查询只购买了“20652”又购买了“22082”图书的订单编号。
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!