MSSQL 分组后取每组第一条(group by order by)

select * from ( select ROW_NUMBER() over(partition by x order by y desc) RowNum ,testTable.* from testTable) as t1 where RowNum = 1

记录一下,以后会用到

时间: 2024-08-28 22:36:38

MSSQL 分组后取每组第一条(group by order by)的相关文章

oracle分组后取每组第一条数据

数据格式: 分组取第一条的效果: sql语句: SELECT * FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC)rn, test1.* FROM test1) WHERE rn = 1 ;

MySQL 分组后取每组前N条数据

与oracle的 rownumber() over(partition by xxx  order by xxx )语句类似,即:对表分组后排序 创建测试emp表 DROP TABLE IF EXISTS emp; CREATE TABLE emp ( empno decimal(4,0) NOT NULL, ename varchar(10) DEFAULT NULL, job varchar(9) DEFAULT NULL, mgr decimal(4,0) DEFAULT NULL, hi

oracle分组取每组第一条数据

select * from test; no time name 1001   20141226 zhangsan 1001   20141227 lisi 1002 20141228 wangwu 1002  20141229 zhaoliu select * from (select rank() over(partition by documentno order by time desc) r,a.* from test a) where r=1; no time            

分组后取每组内排名的Top N的SQL语句

给个MySQL例子参考 -----查询每门课程的前2名成绩 CREATE   TABLE   StudentGrade( stuId   CHAR(4),         --学号 subId   INT,                 --课程号 grade   INT,                 --成绩 PRIMARY   KEY   (stuId,subId) ) GO --表中数据如下 INSERT   INTO   StudentGrade(stuId,subId,grade

MSSQL—按照某一列分组后取前N条记录

以前在开发的时候遇到过一个需求,就是要按照某一列进行分组后取前几条数据,今天又有同事碰到了,帮解决了之后顺便写一篇博客记录一下. 首先先建一个基础数据表,代码如下: IF OBJECT_ID(N'Test') IS NOT NULL    BEGIN        DROP TABLE Test    END CREATE TABLE Test(ID bigint IDENTITY(1,1),Name nvarchar(50),Department nvarchar(50)) INSERT IN

获取分组后取某字段最大一条记录

获取分组后取某字段最大一条记录 方法一:(效率最高) select * from test as a where typeindex = (select max(b.typeindex) from test as b where a.type = b.type );

获取分组后取某字段最大一条记录(求每个类别中最大的值的列表)

获取分组后取某字段最大一条记录方法一:(效率最高) select * from test as a where typeindex = (select max(b.typeindex) from test as b where a.type = b.type ); 方法二:(效率次之) select a.* from test a, (select type,max(typeindex) typeindex from test group by type) b where a.type = b.

SQL Server 分组后取Top N

SQL Server 分组后取Top N(转) 近日,工作中突遇一需求:将一数据表分组,而后取出每组内按一定规则排列的前N条数据.乍想来,这本是寻常查询,无甚难处.可提笔写来,终究是困住了笔者好一会儿.冥思苦想,遍查网络,不曾想这竟然是SQL界的一个经典话题.今日将我得来的若干方法列出,抛砖引玉,以期与众位探讨. 正文之前,对示例表结构加以说明. 表SectionTransactionLog,用来记录各部门各项活动的日志表 SectionId,部门Id SectionTransactionTyp

SQL数据分组后取最大值或者取前几个值(按照某一列排序)

今日做项目的时候,项目中遇到需要将数据分组后,分组中的最大值,想了想,不知道怎么做,于是网上查了查,终于找到了思路,经过比较这个查询时目前用时最快的,其实还有别的方法,但是我觉得我们只掌握最快的方法就行 ,好了,不说废话了! 直接上内容吧:以下数据是通过 SELECT [CustomerCaseNo],[PaymentsTime] FROM [BOMSDatabase].[dbo].[BAL_paymentsSwiftInfo] where StoresNo='zq00000034' group