SQL数据分组后取最大值或者取前几个值(按照某一列排序)
来源:互联网 发布:淘宝宝贝详情添加视频 编辑:程序博客网 时间:2024/05/01 15:22
今日做项目的时候,项目中遇到需要将数据分组后,分组中的最大值,想了想,不知道怎么做,于是网上查了查,终于找到了思路,经过比较这个查询时目前用时最快的,其实还有别的方法,但是我觉得我们只掌握最快的方法就行 ,好了,不说废话了!
直接上内容吧:以下数据是通过
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
当执行完红字部分的SQL语句,就出现如下结果
达到我的要求,对数据分组以后,取出分组里面时间最近的数据记录,用到的SQL函数为
ROW_NUMBER() over(partition by 分组字段order by 排序字段 desc)
0 0
- SQL数据分组后取最大值或者取前几个值(按照某一列排序)
- SQL数据分组后取最大值或者取前几个值(按照某一列排序)
- 数据分组取最大值行
- SQL 取 2列最大值
- 实现按a字段分组后,在组内再按照b字段排序,之后每组取Top n条数据
- 按某一字段分组取最大(小)值所在行的数据(sql server)
- SQL Server 按某一字段分组取最大(小)值所在行的数据
- 【SQL精彩语句】按某一字段分组取最大(小)值所在行的数据
- oracle中分组排序并取最大值
- T-SQL取分组最大值记录
- MySQL分组然后取每个分组中按照某些字段排序的topN条数据
- Mysql取分组后前N个值
- MySql 按某一字段分组,同时取每组的前三行数据
- SQL 取分组后前三条数据
- sql语句:取按a列分组后,b列最大,的所有列的记录
- 几个数据库的取前20条数据SQL
- 几个数据库的取前20条数据SQL
- SQL 分组取前N名
- 隐藏控制台窗口
- 贝叶斯推断及其互联网应用(二):过滤垃圾邮件
- 编程过程中经常用到的算法
- C++中的变量
- Java 的一些运算符
- SQL数据分组后取最大值或者取前几个值(按照某一列排序)
- IOS开发Xcode5将storyboard换成xib
- 第二部分 排序与顺序统计
- heritrix3抓取的数据直接写入到mysql中
- 关于路
- eclipse config 4 关闭eclipse警告
- C++ 代码片段(积累)
- 贝叶斯推断及其互联网应用(三):拼写检查
- QT项目文件(pro)文件的详细说明