7、聚合函数、数学函数、日期时间函数

1、聚合函数

(1)Avg 求平均数

Select  avg(身高)  from 学生表

(2)Count 计算个数

Select  count(*)  from 学生表

(3)Max 求最大数

Select  Max(分数)  from 学生表

(4)Min 求最小值

Select  min(分数)  from 学生表

(5)Sum 求和

Select  sum(分数 from 学生表

例:

--查询身高高于平均身高的同学的所有信息

select * from 学生信息表 where 身高>all(select AVG(身高) from 学生信息表)

--二班同学比二班平均身高高的

select * from 学生信息表 where 班级='二班' and 身高>all

(select AVG(身高) from 学生信息表 where 班级='二班')

--按班级分组查分别有几人

select COUNT(*) as 人数,AVG(身高) as 平均身高,班级 from 学生信息表 

group by 班级 having COUNT(*)>7

--每个班所有男同学和平均身高

select COUNT(*) as 人数,AVG(身高) as 平均身高,班级 from 学生信息表 

where 性别='' group by 班级

--每个班比这个班的平均身高高的同学信息

select * from 学生信息表 as a where 身高>

(select AVG(身高) from 学生信息表 as b where b.班级=a.班级)

2、数学函数

(1)ABS 取绝对值

(2)Ceiling 上限取整

(3)Floor 下限取整

(4)Pi( )  圆周率

(5)Round 四舍五入

(6)Rand( ) 随机生成

(7)Sqrt  求平方根

(8)Square 求平方

例:

--身高开方取整,显示出等于14的学生的所有信息

select * from 学生信息表 where ceiling( sqrt(身高))=14

--身高开方取整,显示出等于14的学生的姓名、身高的信息

select 姓名,身高 from 学生信息表 where ceiling(SQRT(身高))=14

3、日期时间函数

年 yearmonthday时 hour minutes second毫秒millisecond

week平常日weekday

(1)dateadd 添加一定的时间

Select  dateadd  ( year ,1,’1990-09-09’)

(2)Datediff  取时间差

Select  datediff  ( year ,’1880-09-09’,’1990-09-09’)

注意:datediff weekweekday相同,都是返回相差几周。

(3)Dataname 返回日期时间中的年月日时分秒,或者星期,第几周

Select  datename  ( year ,’1990-09-09’)

注意:datename weekweekday不相同,week是返回这天是这一年的第几周, weekday是返回这一天是星期几。

(4)Datepart  取指定段的整数,即返回日期时间中的年月日时分秒(一周第一天是星期日)

Select  datepart  year ‘1990-09-01’)

注意:datepart返回的是整数型,datename 返回的是字符型。

(5)Day  返回这是这个月的第几天

Select  day  ‘1990-09-01’)

(6)Getdate  返回数据库服务时间

Select  getdate ( )

(7)Isdate  判断是不是一个正确的日期时间(是显示1,不是显示0

Select  isdate  ‘1990-09-01’)

(8)Month  获取月份

Select  month ‘1990-09-01’)

(9)Year  获取年份

Select   year ‘1990-09-01’)

(10)Sysdatetime 获取系统时间

Select  sysdatetime  ()

例:

查询学生表中生日是1985年的学生的所有信息

Select  *  from  学生表 where  year (生日)=1985

查询学生表学生的姓名和出生年份

Select 姓名, year(生日) from 学生表

原文地址:https://www.cnblogs.com/XMH1217423419/p/4123034.html