sql-server – 将结果限制为前2个排名行
发布时间:2021-05-22 07:02:53 所属栏目:MsSql教程 来源:网络整理
导读:在SQL Server 2008中,我使用RANK()OVER(PARTITION BY Col2 ORDER BY Col3 DESC)来返回带有RANK的数据集.但是我为每个分区都有数百条记录,因此我将获得1,2,3 …… 999等级的值.但是我想在每个PARTITION中最多只有2个RANK. 例: ID Name Score Subject1 Joe
在SQL Server 2008中,我使用RANK()OVER(PARTITION BY Col2 ORDER BY Col3 DESC)来返回带有RANK的数据集.但是我为每个分区都有数百条记录,因此我将获得1,2,3 …… 999等级的值.但是我想在每个PARTITION中最多只有2个RANK. 例: ID Name Score Subject 1 Joe 100 Math 2 Jim 99 Math 3 Tim 98 Math 4 Joe 99 History 5 Jim 100 History 6 Tim 89 History 7 Joe 80 Geography 8 Tim 100 Geography 9 Jim 99 Geography 我希望结果如下: SELECT Subject,Name,RANK() OVER (PARTITION BY Subject ORDER BY Score DESC) FROM Table Subject Name Rank Math Joe 1 Math Jim 2 History Jim 1 History Joe 2 Geography Tim 1 Geography Jim 2 我只想在每个类别中排名第1和第2.我该怎么做呢? 解决方法您可以使用rank()将原始查询放入子查询中,并使用筛选结果的查询对其进行包装.(编辑:大连站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – 来自sql server的高磁盘I / O还是高磁盘I /
- sql-server-2008 – 通过存储过程模拟TSQL序列
- sql-server – 在不返回任何行的查询中包含ORDER BY会严重影
- 处理SQL Server的“此数据库没有有效所有者”问题
- Sql事务怎么理解?一文迅速了解Sql事务的用法
- sql-server – 触发无限期WAITFOR会增加日志文件的大小吗?
- 用户帐户 – 最佳实践 – 删除未使用的SQL帐户或仅禁用它们
- sql-server-2008 – SQL Server 2008 – 一个表24gb,删除了
- sql实现跨库访问的办法是什么?
- 在SQL Server中重命名约束?
站长推荐
热点阅读