row_number 函数分组查询
有如下表(test)结构的数据:
Id VisitTime StartHour EndHour CustName CustPhone CustFeedback AgentId DelegateId InsertTime
1 2014-06-30 3 5 jk 13144445555 挺好滴 45454 34343 2014-06-30 15:28:38.400
2 2014-06-12 2 5 jk 13022223333 不错 3333 5555 2014-06-30 15:31:18.987
3 2014-06-12 2 5 jji 13022223333 不错 3333 5555 2014-06-30 15:32:12.437
。。。。。。
。。。。。。
现在要求根据agentid进行分组,每组显示前3条,根据inserttime降序排列。
思路:用row_number() over(partition by [field] order by [fileld1] ) 函数
SQL语句:
select * from(
select row_number() over(partition by agentid order by InsertTime desc ) as num, agentid,id,VisitTime ,StartHour ,EndHour ,CustName ,CustPhone ,CustFeedback ,DelegateId ,InsertTime from test with(nolock)
where delegateid=45454 ) as result where num >=1 and num<=3
浙公网安备 33010602011771号