此文章主要向大家讲述的是SQL Server group by的几种我们大家在实际应用中经常使用的用法,我前两天在相关网站看见SQL Server group by的资料,觉得挺好,今天就拿出来供大家分享。 SQL Server 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 将会产生一个多维分类数据集,如下:
Select CategoryID, SupplierID, SUM(UnitPrice) AS SumPriceFROM dbo.ProductsGROUP BY CategoryID, SupplierID WITH CUBE
它会产生一个交叉表,产生所有可能的组合汇总。
6、使用 ROLLUP CUBE 会产生一个 NULL 空值,可以使用以下语法解决,如下:
Select CASE WHEN (GROUPING(SupplierID) = 1) THEN '-1' ELSE SupplierID END AS SupplierID,
SUM(UnitPrice) AS QtySumFROM dbo.ProductsGROUP BY SupplierID WITH CUBE
它首先检查当前行是否为汇总行,假如是就可以设置一个值,这里设置为 '-1' 。
以上的相关内容就是对SQL Server group by的几种用法的介绍,望你能有所收获。
北京时间1月13日消息,根据计划,微软将于2015年1月13日正式结束对Windows 7SP1的“主流支持”,而这也标志着“扩展支持”阶段的开始,这个阶段将于2020年1月14日结束。 2013年10月份,微软终止销售独立的Windows 7系统安装包,并要求制造商于2014年10月份停止生...
ubuntu14.04应用窗口列表在哪里?在ubuntu下打开个几个应用窗口最小化后怎么切换呢,应用窗口列表在哪里呢? 1、多打开几个chrome浏览器窗口。 2、然后都做最小化处理。 3、现在我们在桌面左边的面板上找到"左右两边有小白点"的chrome浏览器应用图标,这就是chr...
假如你想要在Ubuntu上使用Windows应用,就需要用到Wine了,除了支持Linux系统外,Wine还可运行于其他系统,是个非常使用的软件,下面小编就以Ubuntu 14.04为例,给大家介绍下Ubuntu 14.04安装Wine的步骤。 Ubuntu 14.04安装Wine的步骤 1...
Windows 7电脑开机后,虽然连上了网络,但是网络图标却一直不停地转圈,这个问题该怎么修复呢?今天小编就告诉大家解决的方法吧。 解决方法: 1、假如是打补丁后出现的问题。 第一时间卸载驱动精灵,并且把它的文件夹彻底删除,要干净,用360粉碎! 2、开启network list ser...
当你的Windows 7系统在后台打开多个程序时,任务栏右下角往往会出现一排的图标,不但影响美观而且也没实用性。能不能让它像WinXP那样有一个可以隐藏后台程序的小三角图标呢 当然可以,Windows 7可是继承了WinXP许多优秀的功能,而且设置方法也非常简单。 操作方法: 1、在任务栏空白处...
一些Windows 7用户在升级sp1的时候,出现了黑屏问题,黑屏错误代码0xc0000034提示,这个问题该怎么修复呢?今天小编为大家提供两种解决的方法。 Windows 7 sp1系统出现黑屏解决方法一: 在电脑开机的时候按下键盘上的F8,进入Windows 7安全模式界面,然后选择高级...