博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在SQL Server2005/2008中对记录进行分组,并获得每组前N条记录
阅读量:6712 次
发布时间:2019-06-25

本文共 558 字,大约阅读时间需要 1 分钟。

本文为原创,如需转载,请注明作者和出处,谢谢!

    假设有一个表,SQL语句如下:

CREATE 
TABLE 
[
dbo
].
[
scan
](
    
[
km
] 
[
int
] 
NULL,
    
[
kh
] 
[
int
] 
NULL,
    
[
cj
] 
[
int
] 
NULL
ON 
[
PRIMARY
]

    其中km为科目号、kh为考生号、cj为成绩,现对km和kh进行分组,并获得每组前2条记录(按cj从高到低排序)。基本思想是为每组加一个序号列,再用where取序号小于等于2的。SQL语句如下:

select 
* 
from 
(
    
select a.km,a.kh,cj,row_number() 
over(partition 
by a.km 
order 
by a.km,a.cj 
desc) n
    
from 
        (
select km,kh,
SUM(cj) cj 
from scan 
group 
by km,kh) a 
) b 
where n
<=
2 
order 
by km, cj 
desc

最后得到的结果集如下图所示。

本文转自银河使者博客园博客,原文链接http://www.cnblogs.com/nokiaguy/archive/2009/11/03/1594919.html如需转载请自行联系原作者

银河使者

你可能感兴趣的文章
Vue中的RouteMock实现思路及其问题
查看>>
前端每日实战:25# 视频演示如何用纯 CSS 创作一个慧星拖尾效果的 loader 动画...
查看>>
2018年第18周-Java语言思想-并发
查看>>
Node.js EventEmitter解读
查看>>
innodb事务隔离级别及实现机制
查看>>
分布式服务Dubbo的前世今生
查看>>
Forge模型转换和网页浏览在Android上的实践
查看>>
对React Native中Reduce理解
查看>>
greenDao多表关联
查看>>
【译】Vertical-Align: All You Need To Know
查看>>
Visual Studio 2017正式发布
查看>>
强化学习遭遇瓶颈!分层RL将成为突破的希望
查看>>
接口限流的常用算法汇总
查看>>
Kong 发布 Kong Brain 和 Kong Immunity,可进行智能自动化和适应性监控
查看>>
IBM推出实时跨境支付解决方案Blockchain World Wire
查看>>
IBM中国开发中心吉燕勇: 通过Cloud Data Services打造新型认知计算数据分析云平台...
查看>>
Hybrid App走向“轻混”,剖析WeX5开源高性能HTML5 App开发框架
查看>>
网易戏精ARCore短视频新玩法实践
查看>>
华泰证券:如何自研高效可靠的交易系统通信框架?
查看>>
使用Flutter之后,我们的CPU占用率降了50%
查看>>