注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

_

_

 
 
 

日志

 
 

sql server中group by 的几种用法  

2012-08-07 01:07:49|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
sql server中group by 的几种用法

Group by 是SQL Server 中常用的一种语法,语法如下:

[ GROUP BY [ ALL ] group_by_expression [ ,...n ]
??? [ WITH { CUBE | ROLLUP } ]
]

1、最常用的就是这种语法,如下:

Select CategoryID, AVG(UnitPrice), COUNT(UnitPrice) FROM dbo.Products Where UnitPrice > 30GROUP BY CategoryID ORDER BY CategoryID DESC

这个语句查询出,所有产品分类的产品平均单价,单价计数。并且单价在 30 以上的记录。

2、再看看这种语法,如下:

Select CategoryID, AVG(DISTINCT UnitPrice), COUNT(DISTINCT UnitPrice) FROM dbo.Products Where UnitPrice > 30GROUP BY CategoryID ORDER BY CategoryID DESC

使用 DISTINCT 的时候,将会去除重复的价格平均单价。

3、如果希望在分类统计之后,再使用条件过滤,下面的语句可以做为参数:
Select CategoryID, SUM(UnitPrice) AS SumPriceFROM dbo.ProductsGROUP BY CategoryIDHAVING SUM(UnitPrice) > 300
HAVING 与 Where 语句类似,Where 是在分类之前过滤,而 HAVING 是在分类之后过滤。它和 Where 一样使用 AND、OR、NOT、LIKE 组合使用。
4、如果希望再在分类统计中,添加汇总行,可以使用以下语句:

Select CategoryID, SUM(UnitPrice), GROUPING(CategoryID) AS 'Grouping'FROM dbo.ProductsGROUP BY CategoryID WITH ROLLUPGrouping

这一列用于标识出哪一行是汇总行。它使用 ROLLUP 操作添加汇总行。

5、如果使用 WITH CUBE 将会产生一个多维分类

  评论这张
 
阅读(343)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017