SQL Server基础SQL脚本之Group By

代码大概80行左右 本系列,几乎都是代码,记得当时写的时候用的是微软的官方实例数据库AdventureWorks_Data.mdf、AdventureWorks_Log.ldf来运行的。 下载链接:链接: https://pan.baidu.com/s/1pMdLz6N 密码: xvhu 或者回复“AdventureWorks”来获取链接。


不知道随便想的里面有没有跟读者同名的?

--create table EmpTable

drop table EmpTable

CREATE TABLE EmpTable
(
    EmpName nchar(3),
    Region nvarchar(5),
    Department nvarchar(10),
    Salary money
)

--insert 6 records into the table

insert into EmpTable values
(N'李刚',N'山东',N'信息技术部',20000),
(N'赵云',N'广东',N'信息技术部',30000),
(N'周宇',N'山东',N'人力资源部',25000),
(N'李想',N'广东',N'人力资源部',40000),
(N'张涛',N'河北',N'信息技术部',50000),
(N'梁浩',N'山东',N'信息技术部',50000)

select * from EmpTable

-- 1).查看所有员工平均工资
select avg(Salary) as '平均工资' from EmpTable
-- 2).按照地区分组,查看每个地区的平均工资
select Region,avg(Salary) from EmpTable group by Region
select Region,sum(Salary) from EmpTable group by Region

select Region,avg(Salary) from EmpTable group by Region having avg(Salary)>40000
-- 3).按照部门分组,查看每个部门的平均工资
select Department,avg(Salary) from EmpTable group by Department
--4).同时按照地区和部门分组,显示如山东地区人力资源部的平均工资的信息
select Region,Department,avg(Salary) from EmpTable group by Region,Department
--5).同时按照地区和部门、地区、部门分组
select Region,Department,avg(Salary) from EmpTable
group by
grouping sets
(
 (Region,Department), (Region), (Department)
)
--6).按照部门分组的同时显示总的平均
select Region,sum(Salary) from EmpTable group by Region
select sum(Salary) from EmpTable

select Region,sum(Salary) from EmpTable group by rollup(Region)
--Region
--不分组

select Region,Department,sum(Salary) from EmpTable group by rollup(Region,Department)
--Region,Department
--Region
--不分组

-- rollup(A,B,C)
-- A,B,C
-- A,B
-- A 
-- 不分组

--7).同时按照地区和部门分组时,同时显示地区平均,部门平均和总平均
select Region,Department,sum(Salary) from EmpTable group by cube(Region,Department)
--Region+Department
--Region
--Department
--不分组

--cube(A,B,C)
--A
--B
--C
--A,B
--A,C
--B,C
--A,B,C
--不分组
--周末了,加班的继续加班,休班的好好休息吧!

原文发布于微信公众号 - 数据库SQL(SQLdba)

原文发表时间:2018-02-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java成神之路

Java企业微信开发_05_消息推送之被动回复消息

微信加解密包 下载地址:http://qydev.weixin.qq.com/java.zip      ,此包中封装好了AES加解密方法,直接调用方法即可。

3392
来自专栏Hongten

java开发_生成/解析自己的QRCode二维码

在http://www.ostools.net/qr看到了一个生成二维码的工具,于是就产生了一个想法:

1.9K4
来自专栏Golang语言社区

测试一下golang协程资源占有率

摘要: golang 协程 资源占有 GO版本:go version go1.4.2 linux/amd64 测试环境: [root@localhost mpr...

3877
来自专栏开源FPGA

基于Verilog HDL的二进制转BCD码实现

       在项目设计中,经常需要显示一些数值,比如温湿度,时间等等。在数字电路中数据都是用二进制的形式存储,要想显示就需要进行转换,对于一个两位的数值,对1...

1501
来自专栏程序猿DD

Spring框架中的设计模式(四)​

本文是Spring框架中使用的设计模式第四篇。本文将在此呈现出新的3种模式。一开始,我们会讨论2种结构模式:适配器和装饰器。在第三部分和最后一部分,我们将讨论单...

3966
来自专栏女程序员的日常

STM8S——watchdog(IWDG)

IWDG工作原理:   1、当键值寄存器(IWDG_KR)中写入数值0xCC后,独立看门狗就会被启动,计数器开始从它的复位值0xFF开始递减计数,当计数减到0x...

2691
来自专栏Java成神之路

Java企业微信开发_06_素材管理之上传本地临时素材文件至微信服务器

media_id是可复用的,同一个media_id可用于消息的多次发送(3天内有效)

2385
来自专栏WOLFRAM

利用Mathematica 查看天气预报~~~

1992
来自专栏冰霜之地

ReactiveCocoa 中 RACScheduler是如何封装GCD的

在使用ReactiveCocoa 过程中,Josh Abernathy和Justin Spahr-Summers 两位大神为了能让RAC的使用者更畅快的在沉浸在...

1423
来自专栏编程之旅

iOS开发 —— Runtime

因为Objc是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到运行时。也就是说只有编译器是不够的,还需要一个运行时系统 (runtime syste...

1143

扫码关注云+社区

领取腾讯云代金券