栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 数据库 > MySQL > MsSql

SQL Server 2012  开窗函数

MsSql 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQL Server 2012  开窗函数

废话不多说了,直接给大家贴代码了,具体代码如下所示:

-- 开窗函数:在结果集的基础上进一步处理(聚合操作)
-- Over函数,添加一个字段显示最大年龄
SELECt * ,
    MAX(StuAge) OVER ( ) MaxStuAge
FROM  dbo.Student;
-- Over函数,添加一个字段显示总人数
SELECt * ,
    COUNT(StuID) OVER ( ) StuCount
FROM  dbo.Student;
-- Partition By 分组统计数量
-- 根据性别分组后,统计
SELECt COUNT(*) OVER ( PARTITION  BY StuSex ) ,
    *
FROM  dbo.Student;
-- 根据班级分组后,统计、排序
SELECt COUNT(*) OVER ( PARTITION  BY Class ORDER BY Height) ,
    *
FROM  dbo.Student;
-- Over函数,添加一个字段显示平均身高
SELECt * ,
    AVG(Height) OVER ( ) AgeHeight
FROM  dbo.Student;
--Row_Rumber()
SELECt ROW_NUMBER() OVER ( ORDER BY StuID DESC ) RowNumber ,
    *
FROM  dbo.Student
--Row_Rumber() 实现分页效果
;
WITH  T AS ( SELECt  ROW_NUMBER() OVER ( ORDER BY StuID DESC ) RowNumber ,
     *
 FROM   dbo.Student
)
  SELECt *
  FROM  T
  WHERe  T.RowNumber BETWEEN 1 AND 3;
--Rank() 排名函数,名次相同,跳过
SELECt RANK() OVER ( ORDER BY Height ) ,
    *
FROM  dbo.Student;
--DENSE_Rank() 排名函数,名次相同不跳过
SELECt DENSE_RANK() OVER ( ORDER BY Height ) ,
    *
FROM  dbo.Student;
-- NTILE()函数,参数:记录总数/划分区域 = 每个区域数组,把记录序号放进数组 (平均分组)
SELECt NTILE(3) OVER ( ORDER BY StuSex ) ,
    *
FROM  dbo.Student;

以上所述是小编给大家介绍的SQL Server 2012  开窗函数,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/169059.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号