将表里的数据分组,并取每组中的最大的一条数据

select * from ( select ID,GameName,BeginTime,EndTime,CreateTime,IsuseID, row_number() over(partition by GameName order by IsuseID desc) rn from dbo.T_DrawGameInfo)t1
where rn = 1

row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序

时间: 2024-10-23 04:29:57

将表里的数据分组,并取每组中的最大的一条数据的相关文章

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

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

【MySQL】【13】分组查询取每组最新的一条数据

前言:获取所有用户填写的最新一条地址数据 正文: 错误写法: mysql5.7时,子查询的排序已经变为无效了 SELECT * FROM (SELECT * FROM address ORDER BY create_time DESC) a GROUP BY user_id 方法1: 此时子查询就不光是排序,所以此时排序会生效,但有条数限制 SELECT * FROM (SELECT * FROM address ORDER BY create_time DESC LIMIT 10000) a

sql server 获取每一个类别中值最大的一条数据

sql server 获取每一个类别中值最大的一条数据 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 /* 数据如下: name val memo a    2   a2(a的第二个值) a    1   a1--a的第一个值 a    3   a3:a的第三个值 b    1   b1--b的第一个

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

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

今日做项目的时候,项目中遇到须要将数据分组后,分组中的最大值,想了想,不知道怎么做.于是网上查了查,最终找到了思路,经过比較这个查询时眼下用时最快的,事实上还有别的方法,可是我认为我们仅仅掌握最快的方法即可 .好了,不说废话了! 直接上内容吧:下面数据是通过 SELECT [CustomerCaseNo],[PaymentsTime] FROM [BOMSDatabase].[dbo].[BAL_paymentsSwiftInfo] where StoresNo='zq00000034' gro

请教高手!为什么在Log中的我数据都显示出来了,但是在.setText()中只显示最后一条数据?

============问题描述============ 做了一个解析百度天气JSON数据的功能,results里面用的是GSON解析.现在在Log里面显示数据已经解析出来了,但是在TextView界面.setText()上数据只能显示最后一条,这是为什么啊? List<WeatherInfo.index> myIndex = weatherInfo.getIndex(); for (index in : myIndex) { Log.i(TGA, "Des = " + i

SQL中一次插入多条数据

SQL中insert一次可以插入一条数据,我们有三种方法可以一次性插入多条数据. 1. 语法:select 字段列表 into 新表 from 源表 注意事项:此种方法新表是系统自动创建,语句执行前不可以存在新表,并且新表只能保留源表的标识列特性,其他约束不能保留. 若只需要源表的数据结构,我们可以在语句中添加(top 0) 2. 语法:insert into 目的表 select 字段列表 from 源表 注意事项:此种方法目的表必须在语句执行前存在,并且每一列要与源表对应. 在此处还有一些有

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

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

分组后取每组内排名的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