select *,COUNT(*) over() '全班人数' from Student
select *,COUNT(*) over(partition by Ssex) '性别人数' from Student --over()中加入partition by Ssex表示 按Ssex字段分组 男女分别为4人。排名函数4种排名:1.ROW_NUMBER() , 2.RANK(), 3.dense_rank(), 4.NTILE(N)row_number() over(order byfield) 根据over中order by 字段进行排名 输出结果为有序的行号rank() over(order by field)根据over中order by 字段进行排名 输出结果为排名序号有并列而且会断号dense_rank() over(order by field)根据over中order by 字段进行排名 输出结果为排名序号有并列不会断号ntile(N) over(order by field))根据over中order by 字段进行排名 并根据ntile(N)中类型为int参数N进行分组
select *,ROW_NUMBER() over(order by year(sage)) 'rownumber行号', RANK() over(order by year(sage)) 'rank有并列而且会出现断号', dense_rank() over (order by year(sage)) 'dense_rank密集排名', NTILE(4) over(order by year(sage)) '分组排名' from Student也可以在over中加入partition by
select *,ROW_NUMBER() over(partition by year(sage) order by year(sage)) 'rownumber行号' , RANK() over( partition by year(sage) order by year(sage)) 'rank有并列而且会出现断号' , dense_rank() over ( partition by year(sage) order by year(sage)) 'dense_rank密集排名', NTILE(4) over(partition by year(sage) order by year(sage)) '分组排名'from Student补充:with ties
指定从基本结果集中返回附加的行,这些行包含与出现在
TOP
n(PERCENT)行最后的
ORDER
BY
列中的值相同的值。
select top 3 with ties * from Student order by year(sage) --只取前3行,如果最后第3行中sage的年份和后面的年份相同,则附加随后的行
新闻热点
疑难解答