select ClassId ,COUNT(*) as num from Student where Email is not null GROUP by ClassId having COUNT(*)>=2 order by num desc
--完整的sql查询家庭
--5 1 2 3 4 6
--select 字段列表 from 表列表 where 数据源做筛选 group by 分组字段列表 having 分组结果集做筛选 Order by 对结果集做记录重排
select ClassId ,COUNT(*) as num from Student where Email is not null GROUP by ClassId order by ClassId desc
--关于top的执行顺序 排序之后再取top值
select top 1 ClassId ,COUNT(*) as num from Student GROUP by ClassId order by num desc
分组统计
7.类型转换函数
--select :输出为结果集--虚拟表
--print:以文本形式输出 只能输出一个字符串值.
print 1+'a'
select 1,2
select * from Student
--类型转换
--Convert(目标类型,源数据,[格式]) --日期有格式
print '我的成绩是:'+convert(char(3),100)
print '今天是个大日子:'+convert(varchar(30),getdate(),120)
select getdate()
select len(getdate())
--cast(源数据 as 目标类型) 它没有格式
print '我的成绩是:'+cast(100 as char(3))
8.日期函数
--getdate():获取当前服务器日期
select GETDATE()
--可以在源日期值是追加指定时间间隔的日期数
select DATEADD(dd,-90,GETDATE())
--dateDiff:找到两个日期之间指定格式的差异值
select StudentName,DATEDIFF(yyyy,getdate(),BornDate) as age from Student order by age
--DATENAME:可以获取日期的指定格式的字符串表现形式
select DATENAME(dw,getdate())
--DATEPART:可以获取指定的日期部分










