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

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

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

以下的文章主要描述的是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://www.2345hao.cn/blog/index.php/post/22284.html

分享给朋友:

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

windows 7系统的电脑发出嘟嘟嘟的声音该怎么解决?

windows 7系统的电脑发出嘟嘟嘟的声音该怎么解决?

在某些电脑中,机器内部蜂鸣器与系统的声音输出方案是相关联的,这样一来会导致当系统输出声音时,即使电脑没有连接外部音响或耳机,也会通过内置蜂鸣器发出“嘟嘟哔哔”的声音。这个问题主要出现在Windows 7电脑中,假如你的电脑恰好遇到了这样的问题,可参考下面的方法来解决: 1、在桌面“计算机”图标上右...

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

出现该问题的原因是由于使用第三方优化软件消除快捷方式的小箭头引起的。 1、在开始搜索框中键入“regedit”,按回车键打开注册表编辑器。 2、依次定位到以下分支:HKEY_CLASSES_ROOTlnkfile。 3、在lnkfile项上鼠标右键单击“新建”——“字符串值”。...

Windows7播放电影视频蓝屏无论什么格式都会蓝屏

Windows7播放电影视频蓝屏无论什么格式都会蓝屏

问:我在Windows 7 Ultimate X64下播放电影视频时,不管什么格式都会蓝屏,错误代码“0x00000124”。换解码器、播放器不行,换驱动、内存也不管用。在不同的电脑上也试过,仍然蓝屏。请问是哪里的问题,如何解决 答:64位 Windows 7直接使用PotPlayer x64就...

windows 7玩网游PING高即网络延时比较高的解决方法

windows 7玩网游PING高即网络延时比较高的解决方法

经常听见有人说用Windows 7玩网络游戏的时候网络延时比较高,也就是ping比平时xp的时候高一点,一直找不到原因,很苦恼。今天我们终于找到理由了,原来是Windows 7的一个服务在作怪,这个服务叫:Multimedia Class Scheduler,就是这个服务让我的PING如此高,问题是...

Ubuntu修改命令提示符PS1教程(非常详细)

Ubuntu修改命令提示符PS1教程(非常详细)

Ubuntu在使用命令的时候,有时需要修改命令提示符PS1,可很多人并不知道如何修改PS1,下面小编就给大家介绍下Ubuntu如何修改命令提示符PS1,一起来学习下吧。 命令多行输入不方便也不直观,要想修改这个命令提示符。修改~/.bashrc文件中的PS1即可。 PS1是主要的提示符设置,...

Win 7与vista的网络共享方法详解

Win 7与vista的网络共享方法详解

一般大部分人在Windows 7/Vista共享文件为了方便都去掉了密码保护的共享。这样在共享文件夹时就需要添加Everyone或Guest权限。一般共享文件夹时是以向导的形式,添加用户设置权限都很简单,不会有问题。但看到一些人共享驱动器时却遇到了问题。就是网上邻居能够看到共享的驱动器,访问却提示没...