【记录】T-SQL 分组排序中取出最新数据
2014-11-12 00:22
295 查看
原文:【记录】T-SQL 分组排序中取出最新数据示例 Product 表结构:
示例 Product 表数据:
想要的效果是,以 GroupName 字段分组,取出分组中通过 Sort 降序最新的数据,通过示例数据,可以推算出结果数据的 ID 应该为:7、5、3。
示例 SQL 代码:
并没有使用 group by 或 distinct,一行代码搞定,但这种方式会造成性能问题。
使用 group by 代码示例:
执行结果:
示例 Product 表数据:
想要的效果是,以 GroupName 字段分组,取出分组中通过 Sort 降序最新的数据,通过示例数据,可以推算出结果数据的 ID 应该为:7、5、3。
示例 SQL 代码:
select * from Product p where ID=(select top 1 ID from Product where p.GroupName=GroupName order by Sort desc) order by Sort desc
并没有使用 group by 或 distinct,一行代码搞定,但这种方式会造成性能问题。
使用 group by 代码示例:
select p1.* from Product p1 inner (select MAX(p2.ID) from Product p2 group by p2.GroupName) p3 on p1.ID=p3.ID
执行结果:
相关文章推荐
- 【记录】T-SQL 分组排序中取出最新数据
- yii 使用原生sql 查询 以某一字段分组 每个字段取出最新的一条数据
- mysql查询获取分组后最新的一条记录,策略:先排序,然后在次分组查询(默认第一条),就是最新的一条数据了
- SQL 分组排序取最新一条记录
- sql数据分组,过滤分组,group,having,排序
- mysql分组排序取前N条记录的最简洁的单条sql !
- mysql分组排序取前N条记录的最简洁的单条sql !
- [转]取出分组后每组的第一条记录(不用group by)按时间排序
- SQL数据进行排序、分组、统计10技巧
- MSSQL ROW_NUMBER() OVER (...)实现数据的分组、排序、过滤重复、取Top n记录
- SQL语句分组获取记录的第一条数据的方法
- oracle小记1--分组 排序 取最新时间记录
- mysql 读取某个分组最大值,或最新记录的sql
- sql 按递增查询记录,并获取已排序的数据的百分比
- 取出分组后每组的第一条记录(不用group by)按时间排序
- SQL学习之查询技巧 查询第3的数据 用一条语句分组,排序 并查询某一排名
- 分组取最新记录的SQL
- 对多数据进行分组排序后取每组第一条记录
- 取出分组后每组的第一条记录(不用group by)按时间排序---转
- 先分组查询,然后为每组数据排序,取出最大值