正文描述:《sql语句中GROUP BY 和 HAVING的使用 count()》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、sql语句中GROUPBY和HAVING的使用count()sql语言中一种特殊的函数:聚合函数, 例如SUM,COUNT,MAX,AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。 SELECTSUM(population)FROMbbc 这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有 国家的总人口数。 having是分组(groupby)后的筛选条件,分组后的数据组内再筛选where则是在分组前筛选通过使用GROUPBY子句,可以让SUM和COUNT这
2、些函数对属于一组的数据起作用。 当你指定GROUPBYregion时,属于同一个region(地区)的一组数据将只能返回一行值. 也就是说,表中所有除region(地区)外的字段,只能通过SUM,COUNT等聚合函数运算后返回一个值. HAVING子句可以让我们筛选成组后的各组数据. WHERE子句在聚合前先筛选记录.也就是说作用在GROUPBY子句和HAVING子句前. 而HAVING子句在聚合后对组记录进行筛选。 让我们还是通过具体的实例来理解GROUPBY和HAVING子句,还采用第三节介绍的bbc表。 SQL实例:
3、 一、显示每个地区的总人口数和总面积. SELECTregion,SUM(population),SUM(area)FROMbbc#`&e4k'X*n1v%?+
4、GROUPBYregion 先以region把返回记录分成多个组,这就是GROUPBY的字面含义。分完组后,然后用聚合函数对每组中的不同字段(一或多条记录)作运算。#B*i'z `,}*S,E5i 二、显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区。 SELECTregion,SUM(population),SUM(area)7];Z&I
5、!t%iFROMbbc8F4w2v(P-fGROUPBYregionHAVINGSUM(area)>1000000#y"P z.O7D9`#X在这里,我们不能用where来筛选超过1000000的地区,因为表中不存在这样一条记录。相反,HAVING子句可以让我们筛选成组后的各组数据 三、查询CUSTOMER和ORDER表中用户的订单数selectc.name,count(order_number)ascountfromorderso,customercwherec.id=o.customer_idgroupbycusto
6、mer_id;+--------+-------+
7、name
8、count
9、+--------+-------+
10、d
11、 9
12、
13、cc
14、 6
15、
16、菩提子
17、 1
18、
19、cccccc
20、 2
21、+--------+-------+增加HAVING过滤selectc.name,count(order_number)ascountfromorderso,customercwherec.id=o.customer_idgroupbycustomer_idhavingcount(order_number)
22、>5;+------+-------+
23、name
24、count
25、+------+-------+
26、d
27、 9
28、
29、cc
30、 6
31、+------+-------+ 四、我在多举一些例子SQL>select*fromsc; SNOPNO GRADE------------------------- 1YW 95 1SX 98 1YY 90 2YW 89 2SX
32、 91 2YY 92 3YW 85 3SX 88 3YY 96 4YW 95 4SX 89 SNOPNO GRADE------------------------- 4 YY 88这个表所描述的是4个学生对应每科学习成绩的记录,其中SNO(学生号)、PNO(课程名)、GRADE(成绩)。1、显示90分以上学生的课程名和成绩
33、//这是一个简单的查询,并没有使用分组查询SQL>selectsno,pno,gradefromscwheregrade>=90; SNOPNO GRADE------------------------- 1YW 95 1SX
显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。