全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
sqlserver常用查询聚合函数与GROUP BY与HAVING的用法2009年05月06日 星期三 下午 02:42在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数,例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。SELECT SUM(population) FROM bbc这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有国家的总人口数。通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于一组的数据起作用。当你指定 GROUP BY region 时, 属于同一个region(地区)的一组数据将只能返回一行值,也就是说,表中所有除region(地区)外的字段,只能通过 SUM, COUNT等聚合函数运算后返回一个值。HAVING子句可以让我们筛选成组后的各组数据,WHERE子句在聚合前先筛选记录也就是说作用在GROUP BY 子句和HAVING子句前而 HAVING子句在聚合后对组记录进行筛选。让我们还是通过具体的实例来理解GROUP BY 和 HAVING 子句,还采用第三节介绍的bbc表。SQL实例:一、显示每个地区的总人口数和总面积:SELECT region, SUM(population), SUM(area)FROM bbcGROUP BY region先以region把返回记录分成多个组,这就是GROUP BY的字面含义。分完组后,然后用聚合函数对每组中的不同字段(一或多条记录)作运算。二、 显示每个地区的总人口数和总面积仅显示那些面积超过1000000的地区。SELECT region, SUM(population), SUM(area)FROM bbcGROUP BY regionHAVING SUM(area)1000000在这里,我们不能用where来筛选超过1000000的地区,因为表中不存在这样一条记录。相反,HAVING子句可以让我们筛选成组后的各组数据假设表的字段为depart_id, depart_name, employeename,查询具有depart_id的记录数大于2的所有记录的depart_id,和总数,正确的语句应为:select depart_id, count(*)from departgroup by departIdhaving count(*)=2 注意:先分组在算count 下面还有2个例子: 例:查询出现过2次的user。往往初学者会错误地认为在where 语句里直接使用count()算法,很显然这个想法是错误的,count()方法并不能被用在where子句中,为了解决问题,我们可以在group by子句后面使用HAVING来做条件限制。错误做法:select * from user_num where count(user)2 group by user;正确做法:select * from user_num group by user HAVING count(user)2 ;解释说明:HAVING 与 WHERE 类似,可用来决定选择哪些记录。HAVING 子句在SELECT语句中指定,显示哪些已用 GROUP BY 子句分组的记录。在GROUP BY组合了记录后, HAVING会显示 GROUP BY 子句分组的任何符合 HAVING 子句的记录。 例:查询单一用户的num总和大于10的用户。有前面的经验,把sum()方法写在HAVING子句中。正确做法:select * from user_num group by user HAVING sum(num)10 ;注意:一个HAVING子句最多只能包含40个表达式,HAVING子句的表达式之间可以用AND和OR分割。如果count后面是(*),就是任意一个或多个字段有重复记录时候,他就count。若指定字段,则当指定字段有重复的时候数。如果多条记录(不是相同,即两组不同的记录重复),则返回的记录集合是总共的。下面是几个常用的查询语句供参考按时间查询的一个SQL语句(一个阶段)select * from 表名 where 时间 between 2008-09-20 and 2008-09-24 order by indate分组查询(按用户名分组为一组查询所发的文章总数)having与where相似但是这里不能用whereselect 用户名字,count(文章) as 发贴数 from 表名group by 用户名字 having count(文章)1!在select语句中,where、group by、having子句和统计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业互联网平台架构设计及垂直行业解决方案对比
- 20260519-35kV变电站布置图
- 中考生物复习生物的多样性专项生物的特征题选汇编含答案
- 关于湖南省光伏电站项目可行性研究报告
- 苏教版小学二年级体育教案
- 智慧农业大棚物联网监控系统方案
- 电力可靠性管理信息系统操作实务手册
- 智能出餐口感应灯在建筑工地应用:复杂光照下的识别稳定性
- 2026年大型商场自动扶梯夹人事故救援预案
- 2026年火柴制造工专项题库(附答案与解释)
- 糖尿病患者的全程教育模式构建
- 生产车间微生物知识培训课件
- 基坑工程安全培训课件
- 餐饮消防安全培训
- 2025中国电气装备集团数字科技有限公司招聘28人笔试历年参考题库附带答案详解
- 2012惰性气体灭火系统技术规程
- 肿瘤心脏病指南
- DB53-T+1240-2024劳动用工备案服务规范
- 35770-2022合规管理体系-要求及使用指南标准及内审员培训教材
- 《物流成本管理实务(第2版)》(王科)教案 第25课 构建物流成本绩效评价指标体系
- 2021化工设备安装工程施工质量验收标准
评论
0/150
提交评论