SQL数据分组后取最大值或者取前几个值(按照某一列排序)
今日做项目的时候,项目中遇到需要将数据分组后,分组中的最大值,想了想,不知道怎么做,于是网上查了查,终于找到了思路,经过比较这个查询时目前用时最快的,其实还有别的方法,但是我觉得我们只掌握最快的方法就行 ,好了,不说废话了!
直接上内容吧:以下数据是通过
SELECT [CustomerCaseNo],[PaymentsTime] FROM [BOMSDatabase].[dbo].[BAL_paymentsSwiftInfo] where StoresNo=‘zq00000034‘ group by CustomerCaseNo,[PaymentsTime]
语句得到的,这个语句大家都会写了
现在需要做的事,把这个数据按照[CustomerCaseNo]分组以后 取出PaymentsTime字段里面的最近时间,要做到这个,用下面的语句就可以实现
select * from( select StoresNo,[CustomerCaseNo],[PaymentsTime], ROW_NUMBER() over(partition by CustomerCaseNo order by [PaymentsTime] desc) as rowNum
from BAL_paymentsSwiftInfo where StoresNo=‘zq00000034‘) ranked where ranked.rowNum <= 1 order by ranked.CustomerCaseNo, ranked.PaymentsTime desc
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。