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

相关文章

来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6948
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2070
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5566
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

32010
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2586
来自专栏飞扬的花生

jsencrypt参数前端加密c#解密

      写程序时一般是通过form表单或者ajax方式将参数提交到服务器进行验证,如何防止提交的请求不被抓包后串改,虽然无法说绝对安全却给非法提交提高了难度...

3879
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4878
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2717
来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

2988
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2665

扫码关注云+社区