SqlServer--聚合函数
时间:2019-05-15 16:55 来源:linux.it.net.cn 作者:IT
--聚合函数默认把整个表中的数据当做“一组”,然后才进行的统计。
select * from NewPerson
--统计出所有人的年龄的总和
select sum(age) as 年龄总和 from NewPerson
--统计当前表中一共有多少条记录
select count(*) from NewPerson
--计算平均年龄
select 平均年龄=(select sum(age) as 年龄总和 from NewPerson)*1.0/(select count(*) from NewPerson)
--计算年龄最大的
select max(age) from NewPerson
--年龄最小的
select min(age) from NewPerson
--计算平均值avg
select avg(age*1.0) from NewPerson
--聚合函数不统计空值,直接忽略,而不是将其作为“0”参与计算。
--GROUP BY的使用注意事项
1、分组列中若有NULL,这也将作为一组,且NULL值排在最前面
2、除汇总函数计算语句外,SELECT中的选择列必须出现在GROUP BY 中
3、GROUP BY 可以包含任意数目的列,可以嵌套
--2.如果使用聚合函数的时候,没有手动group by分组,那么聚合函数会把整个表中的数据作为一组来统计
--查询没有及格的学生(假设:数学或英语,只要有一门没有及格就叫做没有及格)的学号
select * from TblScore
select tsid from TblScore where tEnglish<60 or tMath<60
--查询年龄在20-30岁之间的男学生(包含)
select * from MyStudent
select * from MyStudent where fage>=20 and fage<=30 and fgender='男'
--Between…and … 在...之间,(闭区间,包含两个端点值)
select * from MyStudent where fage between 20 and 30 and fgender='男'
select * from TblStudent
--查询出所有班级Id为3,4,5的那些学生
select * from TblStudent where tsclassId=3 or tsclassId=4 or tsclassId=5
select * from TblStudent where tsclassId in (3,4,5)
--19,1,27,86
select * from TblStudent where tsclassId in (19,1,27,86)
--对于in或者or 查询,如果查询中的条件是连续的几个数字,最好使用>= <=或者between...and不要使用or或者in。提高效率
select * from TblStudent where tsclassId >=3 and tsclassId<=5
(责任编辑:IT)
--聚合函数默认把整个表中的数据当做“一组”,然后才进行的统计。 select * from NewPerson --统计出所有人的年龄的总和 select sum(age) as 年龄总和 from NewPerson --统计当前表中一共有多少条记录 select count(*) from NewPerson --计算平均年龄 select 平均年龄=(select sum(age) as 年龄总和 from NewPerson)*1.0/(select count(*) from NewPerson) --计算年龄最大的 select max(age) from NewPerson --年龄最小的 select min(age) from NewPerson --计算平均值avg select avg(age*1.0) from NewPerson --聚合函数不统计空值,直接忽略,而不是将其作为“0”参与计算。 --GROUP BY的使用注意事项 1、分组列中若有NULL,这也将作为一组,且NULL值排在最前面 2、除汇总函数计算语句外,SELECT中的选择列必须出现在GROUP BY 中 3、GROUP BY 可以包含任意数目的列,可以嵌套 --2.如果使用聚合函数的时候,没有手动group by分组,那么聚合函数会把整个表中的数据作为一组来统计 --查询没有及格的学生(假设:数学或英语,只要有一门没有及格就叫做没有及格)的学号 select * from TblScore select tsid from TblScore where tEnglish<60 or tMath<60 --查询年龄在20-30岁之间的男学生(包含) select * from MyStudent select * from MyStudent where fage>=20 and fage<=30 and fgender='男' --Between…and … 在...之间,(闭区间,包含两个端点值) select * from MyStudent where fage between 20 and 30 and fgender='男' select * from TblStudent --查询出所有班级Id为3,4,5的那些学生 select * from TblStudent where tsclassId=3 or tsclassId=4 or tsclassId=5 select * from TblStudent where tsclassId in (3,4,5) --19,1,27,86 select * from TblStudent where tsclassId in (19,1,27,86) --对于in或者or 查询,如果查询中的条件是连续的几个数字,最好使用>= <=或者between...and不要使用or或者in。提高效率 select * from TblStudent where tsclassId >=3 and tsclassId<=5 (责任编辑:IT) |