SQLServer基础SQL脚本之GroupBy
代码大概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 --不分组 --周末了,加班的继续加班,休班的好好休息吧!优质内容筛选与推荐>>