总结 group by 的用法
今天用实例总结一下group by的用法。
归纳一下:group by:ALL ,Cube,RollUP,Compute,Compute by
创建数据脚本
Create Table SalesInfo
(Ctiy nvarchar(50),
OrderDate datetime,
OrderID int
)
insert into SalesInfo
select N'北京','2014-06-09',1001
union all
select N'北京','2014-08-09',1002
union all
select N'北京','2013-10-09',1009
union all
select N'大连','2013-08-09',4001
union all
select N'大连','2013-10-09',4002
union all
select N'大连','2013-05-12',4003
union all
select N'大连','2014-11-11',4004
union all
select N'大连','2014-12-11',4005
首先执行以下脚本:
select Ctiy,count(OrderID) as OrderCount
from
SalesInfo
group by Ctiy
with cube
可以看到多出了一行 是对所有的订单数的汇总
下一个脚本:
select Ctiy,Year(OrderDate) as OrderYear,count(OrderID) as OrderCount
from
SalesInfo
group by Ctiy,Year(OrderDate)
with cube
可以看出来对分组中的维度都进行了汇总,并且还有一个订单的总和
下一个脚本(注意出现了rollup):
select Ctiy,Year(OrderDate) as OrderYear,count(OrderID) as OrderCount
from
SalesInfo
group by Ctiy,Year(OrderDate)
with rollup
使用rollup会对group by列出的第一个分组字段进行汇总运算
下一个脚本:
select Ctiy,count(OrderID) as OrderCount
from
SalesInfo
where
Ctiy = N'大连'
group by all Ctiy
我们会看到 使用group by all 后,不符合条件的城市也会出现,只是订单数是零
需要注意的是 All 不能和 cube 和 rollup一起使用,和having一起使用的话,All的功能会失效.
下一个脚本:
select Ctiy,orderdate,orderid
from
SalesInfo
compute count(orderid)
显示了两个结果集,一个是订单结果集,一个是订单总数结果集
最后一个脚本:
select Ctiy,orderdate,orderid
from
SalesInfo
order by Ctiy
compute count(orderid) by Ctiy
按照不同的城市,分别显示该城市的订单信息,一个显示该城市的所有订单数量
就先说这些了.
总结 group by 的用法的更多相关文章
- SQL中group by的用法
group by即按照给定字段对结果集进行分组,从字面意义上理解就是根据"by"指定的规则对数据进行分组,所谓的分组就是将一个"数据集"划分成若干个" ...
- 带你了解数据库中group by的用法
前言 本章主要介绍数据库中group by的用法,也是我们在使用数据库时非常基础的一个知识点.并且也会涉及Join的使用,关于Join的用法,可以看我写的上一篇文章:带你了解数据库中JOIN的用法如有 ...
- Group by的用法
Group by的用法 GROUP BY 语句根据一个或多个列对结果集进行分组.在分组的列上我们可以使用 COUNT, SUM, AVG,等函数. Group by用法: SELECT column_ ...
- mysql group by的用法 注意
group by 用法: 官方的解释:select 后面的字段必须出现在 group by 后面, 除非是聚合,sum,或者count 但是如果 是多表联查, SELECT c.`name` A ...
- mysql中group by 的用法解析
1. group by的常规用法 group by的常规用法是配合聚合函数,利用分组信息进行统计,常见的是配合max等聚合函数筛选数据后分析,以及配合having进行筛选后过滤. 假设现有数据库表如下 ...
- mysql笔记--group by,limit用法
table: id tag status a b c d 一.group by用法 .与count 联合计数 select status,count(*) from table group by st ...
- mysql group by 的用法解析
1. group by的常规用法 group by的常规用法是配合聚合函数,利用分组信息进行统计,常见的是配合max等聚合函数筛选数据后分析,以及配合having进行筛选后过滤. 聚合函数max se ...
- mysql的limit、order by和group by的用法
程序执行会重复 用mysql很长时间,limit是分页的一个好工具, select * from table_a where num = 4 limit 1,10, select * from tab ...
- 在LINQ查询中LINQ之Group By的用法
LINQ定义了大约40个查询操作符,如select.from.in.where.group 以及order by,借助于LINQ技术,我们可以使用一种类似SQL的语法来查询任何形式的数据.Linq有很 ...
随机推荐
- 最长公共上升子序列(LICS) 模板
void LICS() { ;i<=n;i++) { ; ;j<=n;j++) { if (a[i]==b[j]) f[i][j]=ma+; ][j]; ][j]>ma) ma=f[ ...
- 一模 (6) day2
第一题: 题目大意:求最长公共上升子序列(LICS): 解题过程: 1.一开始想到模仿求最长公共子序列的方法,F[i][j]表示A串前i个,B串前j个的最长公共子序列,很明显当A[i]!= B[j]时 ...
- select2 插件
官网:http://select2.github.io/ Select2是基于jQuery的一个插件,没有引用jQuery,是没有效果的 1.在实现给select2添加placeholder效果的 ...
- SQL 插入日期时间 变量值
--看看吧^^ CREATE TABLE #temp ( test datetime ) go --SQL: INSERT #temp SELECT 1.1 UNION ALL GO --SQL: I ...
- Apache—DBUtils
简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影 ...
- sql遍历树
oracle有直接的sql来遍历一颗树的子节点和父节点 遍历一个节点的所有子节点(classid的值就是该节点的值) select * from organization_ a start with ...
- SpringMvc 单例
struts2的controller是多例,是因为其中有modeldriven将比如user 或者其他属性暴露出来,接受属性,特别是继承了actionsupport之后,fielderror的属性也会 ...
- Android studio 环境搭建
环境变量: CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar JAVA_HOME:F:\Prog ...
- 算法导论 第六章 思考题6-3 Young氏矩阵
这题利用二叉堆维持堆性质的办法来维持Young氏矩阵的性质,题目提示中写得很清楚,不过确实容易转不过弯来. a,b两问很简单.直接看c小问: 按照Young氏矩阵的性质,最小值肯定在左上角取得,问题在 ...
- css中的列表属性
list-style-type设定引导列表的符号类型,可以设置多种符号类型,值为disc.circle.square等 list-style-image使用图像作为定制列表的符号 list-style ...