黑马程序员—学习笔记之SQL数据分组、限制结果集行数
2011-11-29 09:58
316 查看
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
一、数据分组
(一)GROUP BY子句
1.按年龄进行分组统计人数:SELECT Fage,Count(*) FROM T_Employee GROUP BY Fage
2.GROUP BY 子句必须放到WHERE语句之后
3.没有出现在GROUP BY子句中的列是不能放到SELECT雨具后的列名列表中的(聚合函数中除外)
a)错误:SELECT FAge,FSalay FROM T_Employee GROUP BY FAge
b)正确:SELECT FAge,AVG(FSalay) FROM T_Employee GROUP BY FAge
(二)Having语句
HAVING不能代替WHERE。因为WHERE对原始数据过滤,HAVING对分组后的数据进行过滤。
二、限制结果集的行数
(一)查询语句
1.取工资排名前三的信息
2.取工资排名第六到第九的信息
3.Row_Number函数
三、抑制重复数据
(一)修改表
1.给T_Employee表增加一个FSubCompany列
(二)关键词DISTINCT
DISTINCT不是针对一个列进行重复处理,而是消除完全重复的结果集
(三)联合结果集(UNION ALL)
1.要求:上下两个表的查询的列的数目相同、对应的数据类型相容,列名可以不同
2.UNION查询的结果会自动去掉重复数据,效率很低。取消重复的方法是在UNION后加关键词ALL
3.实例:
a)查询正式工和临时工的最高年龄,代码如下:
b)查询员工工资与合计
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- 详细请查看:http://net.itheima.com/
一、数据分组
(一)GROUP BY子句
1.按年龄进行分组统计人数:SELECT Fage,Count(*) FROM T_Employee GROUP BY Fage
2.GROUP BY 子句必须放到WHERE语句之后
3.没有出现在GROUP BY子句中的列是不能放到SELECT雨具后的列名列表中的(聚合函数中除外)
a)错误:SELECT FAge,FSalay FROM T_Employee GROUP BY FAge
b)正确:SELECT FAge,AVG(FSalay) FROM T_Employee GROUP BY FAge
(二)Having语句
SELECT Fage,Count(*) FROM T_Employee GROUP BY Fage HAVING COUNT(*)>1
HAVING不能代替WHERE。因为WHERE对原始数据过滤,HAVING对分组后的数据进行过滤。
二、限制结果集的行数
(一)查询语句
1.取工资排名前三的信息
SELECT TOP 3 * FROM T_Employee ORDER BY FSalary DESC
2.取工资排名第六到第九的信息
SELECT TOP 4 * FROM T_Employee WHERE FNumber NOT IN (SELECT TOP 5 FNumber FROM T_Employee ORDER BY FSalary DESC) ORDER BY FSalary DESC
3.Row_Number函数
SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY FSalary DESC) AS rownumber, FNumber,FSalary,FAge, FROM T_Employee )AS a WHERE a.rownumber>=3 AND a.rownumber<=5
三、抑制重复数据
(一)修改表
1.给T_Employee表增加一个FSubCompany列
ALTER TABLE T_Employee ADD FSubCompany VARCHAR(20)
(二)关键词DISTINCT
DISTINCT不是针对一个列进行重复处理,而是消除完全重复的结果集
SELECT DISTINCT FDepartment,FSubCompany FROM T_Employee
(三)联合结果集(UNION ALL)
1.要求:上下两个表的查询的列的数目相同、对应的数据类型相容,列名可以不同
SELECT FName,FAge FROM T_Employee UNION ALL SELECT FName,FAge FROM T_TempEmployee
2.UNION查询的结果会自动去掉重复数据,效率很低。取消重复的方法是在UNION后加关键词ALL
3.实例:
a)查询正式工和临时工的最高年龄,代码如下:
SELECT '正式工最高年龄',MAX(FAge) FROM T_Employee UNION ALL SELECT '临时工最高年龄',MAX(FAge) FROM T_TempEmployee
b)查询员工工资与合计
SELECT FNumber,FSalary FROM T_Employee UNION ALL SELECT '工资合计',SUM(FSalary) FROM T_TempEmployee
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- 详细请查看:http://net.itheima.com/
相关文章推荐
- 黑马程序员之SQL 学习笔记:外键对数据更新的影响
- [笔记]流行数据库SQL差异分析之“限制结果集行数”
- 【黑马程序员】批量数据提交SqlBuckCopy(学习笔记)
- 黑马程序员 SQL数据分组-限制结果集-去掉重复数据
- 黑马程序员之SQL学习笔记:主键对数据更新的影响
- 黑马程序员之SQL 学习笔记:非空约束对数据更新的影响
- 黑马程序员_java基础学习笔记01_变量,数据类型,运算符
- 黑马程序员-IOS学习笔记-C语言基础复杂数据类型
- 黑马程序员之ASP.NET学习笔记:将数据导出到Word或Excel
- SQL Server 2005 T-SQL 学习笔记:新数据类型
- 黑马程序员之ASP.NET学习笔记:showModalDialog和showModelessDialog数据传递技巧
- 【黑马程序员】数据导入(学习笔记)
- 【黑马程序员】 我的C语言学习笔记(1)数据类型
- PL/SQL学习笔记之数据类型中的标量、LOB
- 流行数据库SQL差异分析之“限制结果集行数”
- 黑马程序员之SQL server基础学习笔记(三)
- 黑马程序员_学习日记48_616数据库开发及ADO.Net(带参数的Sql语句、数据库与文本文件导入导出、省市联动、资料管理器、DataSet (ado.net断开式数据访问)、SQLHelper)
- 黑马程序员——Objective-C程序设计(第4版)学习笔记之10-变量和数据类型——黑马 IOS 技术博客
- SQL Server 2005 T-SQL 学习笔记:新数据类型
- 【学习笔记】SQL语句处理分组合并