当前位置:首页 > 系统运维 > 正文内容

SQL Server group by语句的几种用法描述

a8116255316年前 (2010-07-26)系统运维7

以下的文章主要描述的是SQL Server group by的正确用法,在实际操作中group by是经常要用到的语法,那么你对SQL Server group by的用法有兴趣了解的话,你就可以通过以下的文章对其有个更好的了解。

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

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

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

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

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

SQL Server group by的用法2、再看看这种语法,如下:

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

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

SQL Server group by的用法3、假如希望在分类统计之后,再使用条件过滤,下面的语句可以做为参数:

Select CategoryID, SUM(UnitPrice) AS SumPrice  FROM dbo.Products  GROUP BY CategoryID  HAVING SUM(UnitPrice) > 300 

HAVING 与 Where 语句类似,Where 是在分类之前过滤,而 HAVING 是在分类之后过滤。它和 Where 一样使用 AND、OR、NOT、LIKE 组合使用。

SQL Server group by的用法4、假如希望再在分类统计中,添加汇总行,可以使用以下语句:

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

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

SQL Server group by的用法5、假如使用 WITH CUBE 将会产生一个多维分类数据集,如下:

Select CategoryID, SupplierID, SUM(UnitPrice) AS SumPrice  FROM dbo.Products  GROUP BY CategoryID, SupplierID WITH CUBE 

它会产生一个交叉表,产生所有可能的组合汇总。

SQL Server group by的用法6、使用 ROLLUP CUBE 会产生一个 NULL 空值,可以使用以下语法解决,如下:

Select CASE WHEN (GROUPING(SupplierID) = 1) THEN '-1' ELSE SupplierID END AS SupplierID, SUM(UnitPrice) AS QtySum  FROM dbo.ProductsGROUP BY SupplierID WITH CUBE 

它首先检查当前行是否为汇总行,假如是就可以设置一个值,这里设置为 '-1' 。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/22284.html

分享给朋友:

“SQL Server group by语句的几种用法描述” 的相关文章

windows 7系统如何设置休眠时不断网以便继续完成下载

windows 7系统如何设置休眠时不断网以便继续完成下载

在Windows 7系统的默认设置中,当Windows 7系统处于休眠状态时,会同时断网的。如此一来,无论你正在使用迅雷还是快车等下载工具,同样可以在休眠状态下继续完成下载,最大限度做到从身边的小事开始支持环保。下面我们就详细介绍操作步骤,帮助Windows 7系统用户实现这一节能目标。 首先需要...

如何删除自带的不常用应用为windows 7减负

如何删除自带的不常用应用为windows 7减负

对于Windows 7系统来说,其默认安装的许多工具是我们很少使用或从来不用的,比如系统自带的扫雷、纸牌游戏等。删除此类长期不用的系统组件,不但可以让系统更清爽,更重要的是还可以提高系统的运行速度,特别是对于硬件配置相对较低的上网本来说,尤其如此。接下来,笔者就给大家介绍一下如何删除Windows...

windows 7系统件夹和文件都不显示名字如何解决

windows 7系统件夹和文件都不显示名字如何解决

假如碰到电脑里的文件夹和文件全都不显示名字了(如下图),是不是电脑中毒了呢 请教下笔者有没好的解决方法!下面是笔者给出的答案,希望能够帮助到大家! 首先打开你用来装图片的文件夹(缩略图下面的文字不显示的文件夹),然后但击工具栏上的“查看”选择“平铺”, 下面就是关键:要按住SHIFT键不...

ubuntu14.04打开个几个应用窗口最小化后怎么切换呢?

ubuntu14.04打开个几个应用窗口最小化后怎么切换呢?

ubuntu14.04应用窗口列表在哪里?在ubuntu下打开个几个应用窗口最小化后怎么切换呢,应用窗口列表在哪里呢? 1、多打开几个chrome浏览器窗口。 2、然后都做最小化处理。 3、现在我们在桌面左边的面板上找到"左右两边有小白点"的chrome浏览器应用图标,这就是chr...

windows 7如何给c盘扩容 图解windows 7 64位系统C盘扩容方法(自

windows 7如何给c盘扩容 图解windows 7 64位系统C盘扩容方法(自

用Windows 7久了,C盘越来越大,原来50G的空间基本用完了,又不想重装系统,就想着能不能直接扩容。 在网上搜了半天,看了无数教程,都写得不明不白的,结合了几篇教程才终于搞明白。 重新总结一下,方便有需要的人。 所用软件: http://www.jb51.net/softs/57895...

windows 7旗舰版系统提示应用程序错误代码0xc0000409的故障原因

windows 7旗舰版系统提示应用程序错误代码0xc0000409的故障原因

问题现象,具体如下所示:  故障分析: 一般来说,出现这种情况是因为电脑误删系统文件或者是系统文件被顽固木马破坏。       解决方法: 1、下载360安全卫士,找到里面的急救箱开始急救,然后进行修复,完成后重新启动; 2、下载瑞...