今天用实例总结一下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 的用法的更多相关文章

  1. SQL中group by的用法

    group by即按照给定字段对结果集进行分组,从字面意义上理解就是根据"by"指定的规则对数据进行分组,所谓的分组就是将一个"数据集"划分成若干个" ...

  2. 带你了解数据库中group by的用法

    前言 本章主要介绍数据库中group by的用法,也是我们在使用数据库时非常基础的一个知识点.并且也会涉及Join的使用,关于Join的用法,可以看我写的上一篇文章:带你了解数据库中JOIN的用法如有 ...

  3. Group by的用法

    Group by的用法 GROUP BY 语句根据一个或多个列对结果集进行分组.在分组的列上我们可以使用 COUNT, SUM, AVG,等函数. Group by用法: SELECT column_ ...

  4. mysql group by的用法 注意

    group by 用法: 官方的解释:select 后面的字段必须出现在 group by 后面, 除非是聚合,sum,或者count 但是如果 是多表联查, SELECT    c.`name` A ...

  5. mysql中group by 的用法解析

    1. group by的常规用法 group by的常规用法是配合聚合函数,利用分组信息进行统计,常见的是配合max等聚合函数筛选数据后分析,以及配合having进行筛选后过滤. 假设现有数据库表如下 ...

  6. mysql笔记--group by,limit用法

    table: id tag status a b c d 一.group by用法 .与count 联合计数 select status,count(*) from table group by st ...

  7. mysql group by 的用法解析

    1. group by的常规用法 group by的常规用法是配合聚合函数,利用分组信息进行统计,常见的是配合max等聚合函数筛选数据后分析,以及配合having进行筛选后过滤. 聚合函数max se ...

  8. mysql的limit、order by和group by的用法

    程序执行会重复 用mysql很长时间,limit是分页的一个好工具, select * from table_a where num = 4 limit 1,10, select * from tab ...

  9. 在LINQ查询中LINQ之Group By的用法

    LINQ定义了大约40个查询操作符,如select.from.in.where.group 以及order by,借助于LINQ技术,我们可以使用一种类似SQL的语法来查询任何形式的数据.Linq有很 ...

随机推荐

  1. Sticks(poj1011/uva307)

    题目大意: 乔治有一些碎木棒,是通过将一些相等长度的原始木棒折断得到的,给出碎木棒的总数和各自的长度,求最小的可能的原始木棒的长度:(就是将一些正整数分组,每组加起来和相等,使和尽可能小) 一开始做p ...

  2. [USACO精选] 第一章 数值计算

    好不容易坑来了传说中的USACO精选,近100题我要是能做完就哈哈哈哈了…继今天学并查集连番受挫之后,决定写一写基础题. #0 负二进制 2014-01-10 其实是想到就会做,不想到就不会做的题,数 ...

  3. php变量的判空和类型判断

    (1)var_dump(); 判断一个变量是否已经声明并且赋值,并且打印类型和值 <?php $a; var_dump($a);//输出null <?php var_dump($a);// ...

  4. 动态加载DLL函数GetProcAddress错误

    GetLastError获取错误代码127,指代“找不到指定程序”. 解决: 转自:http://hi.baidu.com/violetwangy/item/c35b3b95ecf5374cf0421 ...

  5. JSON基础使用

    1)JSON概念 JSON 是纯文本 JSON 具有“自我描述性”(人类可读) JSON 具有层级结构(值中存在值) JSON 可通过 JavaScript 进行解析 JSON 数据可使用 AJAX ...

  6. IOS UITableView的分隔线多出问题

    如题,有时显示UITableView多出部分在页面时,下面会显示处多出的行, 此时应该在UITableView初始化时设置为Group if (_tableView == nil) { _tableV ...

  7. Android studio 环境搭建

    环境变量: CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar JAVA_HOME:F:\Prog ...

  8. Note_Master-Detail Application(iOS template)_07_ YJYDetailViewController.m

    //  YJYDetailViewController.m #import "YJYDetailViewController.h" @interfaceYJYDetailViewC ...

  9. Python学习路程day7

    多态 class Animal: def __init__(self, name): # Constructor of the class self.name = name def talk(self ...

  10. linux下解决端口被占用的问题

    以端口9877为例,先查看是否有进程占用该端口 netstat -tln | grep 9877 然后查看占用该端口的进程的进程id lsof -i :9877 最后kill 命令结束该进程: kil ...