聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 安全验证

安全验证

时间:2023-11-15 21:37:32    下载该word文档

sqlserver常用查询聚合函数与GROUPBYHAVING的用法20090506星期三下午02:42在介绍GROUPBYHAVING子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数,例如SUM,COUNT,MAX,AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。
SELECTSUM(populationFROMbbc

这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有国家的总人口数。

通过使用GROUPBY子句,可以让SUMCOUNT这些函数对属于一组的数据起作用。当你指定GROUPBYregion时,属于同一个region(地区)的一组数据将只能返回一行值,也就是说,表中所有除region(地区)外的字段,只能通过SUM,COUNT等聚合函数运算后返回一个值。

HAVING子句可以让我们筛选成组后的各组数据,WHERE子句在聚合前先筛选记录.也就是说作用在GROUPBY子句和HAVING子句前.而HAVING子句在聚合后对组记录进行筛选。

让我们还是通过具体的实例来理解GROUPBYHAVING子句,还采用第三节介绍的bbc表。

SQL实例:

一、显示每个地区的总人口数和总面积:
SELECTregion,SUM(population,SUM(areaFROMbbc
GROUPBYregion

先以region把返回记录分成多个组,这就是GROUPBY的字面含义。分完组后,然后用聚合函数对每组中的不同字段(一或多条记录)作运算。

二、显示每个地区的总人口数和总面积.仅显示那些面积超过1000000地区。
SELECTregion,SUM(population,SUM(areaFROMbbc
GROUPBYregion
HAVINGSUM(area>1000000


在这里,我们不能用where来筛选超过1000000的地区,因为表中不存在这样一条记录。

相反,HAVING子句可以让我们筛选成组后的各组数据.
假设表的字段为depart_id,depart_name,employeename,查询具有depart_id的记录数大于2的所有记录的depart_id,和总数,正确的语句应为:
selectdepart_id,count(*
fromdepartgroupbydepartIdhavingcount(*>=2注意:先分组在算count
下面还有2个例子:

例1:查询出现过2次的user
往往初学者会错误地认为在where语句里直接使用count(算法,很显然这个想法是错误的,count(方法并不能被用在where子句中,为了解决问题,我们可以在groupby子句后面使用HAVING来做条件限制。错误做法:select*fromuser_numwherecount(user>2groupbyuser;正确做法:select*fromuser_numgroupbyuserHAVINGcount(user>2;
解释说明:HAVINGWHERE类似,可用来决定选择哪些记录。HAVING句在SELECT语句中指定,显示哪些已用GROUPBY子句分组的记录。GROUPBY组合了记录后,HAVING会显示GROUPBY子句分组的任何符合HAVING子句的记录。
例2:查询单一用户的num总和大于10的用户。有前面的经验,把sum(方法写在HAVING子句中。
正确做法:select*fromuser_numgroupbyuserHAVINGsum(num>10;注意:一个HAVING子句最多只能包含40个表达式,HAVING子句的表达式之间可以用ANDOR分割。
如果count后面是(*,就是任意一个或多个字段有重复记录时候,他就count
若指定字段,则当指定字段有重复的时候数。如果多条记录(不是相同,即两组不同的记录重复),则返回的记录集合是总共的。
下面是几个常用的查询语句供参考=============================
按时间查询的一个SQL语句(一个阶段)
select*from表名where时间between'2008-09-20'and'2008-09-24'

免费下载 Word文档免费下载: 安全验证

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服