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 条评论
登录 后参与评论

相关文章

来自专栏文渊之博

介绍一种非常好用汇总数据的方式GROUPING SETS

介绍   对于任何人而言,用T-SQL语句来写聚会查询都是工作中重要的一环。我们大家也都很熟悉GROUP BY子句来实现聚合表达式,但是如果打算在一个结果集中包...

36911
来自专栏Java架构解析

「架构思维导图」搞定数据库索引就是这么简单

现在加群即可获取思维导图,还有Java工程化、高性能及分布式、高性能、高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点高级...

510
来自专栏圆方圆学院精选

【许晓笛】EOS 数据库与持久化 API —— 架构

在 EOS 中,智能合约执行完毕后,所占用的内存会释放。程序中的所有变量都会丢失。如果智能合约里要持久地记录信息,比如游戏智能合约要记录每位用户游戏记录,本次合...

904
来自专栏测试开发架构之路

分分钟 搞懂 各种类型的关联

在测试工作中,有时需要测试数据库数据经过sql计算后的结果是否满足某一功能查询得到的返回值。 针对某些需要功能需要联查多张表,此时 关联 的作用就异常重要了,而...

2795
来自专栏数据和云

郑保卫 - 索引优化策略及实战

本文中将要介绍的索引战略方案是以尽可能少的索引来满足尽可能多的数据读取类型的索引构建方法。这个策略方案要求在构建索引时,尽可能多地搜集当前正在使用的未来将要出...

2855
来自专栏学习有记

SQL Server 索引内部结构:SQL Server 索引进阶 Level 10

1044
来自专栏GreenLeaves

SQL学习之联结表的使用

1、简介:"联结(join)表"是SQL最强大的功能之一。联结是利用SQL的SELECT能执行的最重要的操作,很好地理解联结及其语法是学习SQL的极为重要的部分...

1749
来自专栏数据和云

SQL Server 2008处理隐式数据类型转换在执行计划中的增强

作者 | 邹建,资深数据库专家,精通各项 SQL Server 技术,具有丰富的管理、维护、优化能力以及业务应用经验。他一直热心于技术知识的分享、传播,持续活跃...

433
来自专栏数据和云

网友过招老杨:Gauss和Poincare数学问题的另类解法

大家应该还记得前几天我们的一篇文章:用SQL解一道有趣的数学题:Gauss和Poincare ,错过的朋友请先回顾。感谢网友的反馈,发来新的解法一则。 如网友所...

2604
来自专栏Python爬虫实战

MySQL从零开始:数据库简介

从字面意思理解,首先数据库是一个存放东西的库,里面存的东西是数据。以下解释来自百度百科:

702

扫码关注云+社区