clwn.net
当前位置:首页 >> 分组取第一条 >>

分组取第一条

select * from ( select row_number() over(partition by '分组' order by '日期') as rownum -- 排序并分组 , * -- 所需显示的字段 from 表 ) as T where T.rownum = 1 对每组的数据按日期排序并加上行号 取出时只取行号为1,也就是第一条数据。

--不知道你需要依据什么分组,如下是根据table1_id进行分组所得结果 select * from (select a.id as a_id,a.name,a.time,a.content,b.id as b_id,b.user from table1 a inner join table2 b on a.id = b.table1_ID) new_tbl where b_id in (sele...

用row_number函数可以解决。 1、创建测试表及插入数据: create table test(id int,name varchar(10),score int,classname varchar(20));insert into test values (1,'张三',100,'一班');insert into test values (2,'李四',89,'一班');insert i...

select userid,ranking,username from table where userid+ranking in ( select userid+max(ranking) from table group by userid )

据个人理解有2种方法: 一是采用数据透视表,另外加一个SHEET,这里暂不详说; 二是在本表中采用公式法:在d2输入:=a2&"最后日期",d3输入:=if(a3=a2,"",a3&"最后日期"),然后下拉d3。这样所求的数据在D列可以标识出来。后面的事,对高级顾问...

那只能是借助rownum来实现了. oracle中在加了rownum之后可进行排序。 使用rownum,一般是筛选部分行数为结果,所以若再排序,只是对部分结果进行排序,可能不是所需要的结果。 若在oracle先排序再rownum,则使用SQL嵌套可以实现,比如 select * ...

请使用max函数

oracle进行分组后,取出每组的前几条数据SELECT *FROM (SELECT 分组的字段名,ROW_NUMBER() OVER(PARTITION BY 分组的字段名 ORDER BY 排序的字段名) AS RNFROM 表名)WHERE RN

CREATE TABLE test ( channelId int, subChanID INT ); INSERT INTO test SELECT 1, 11 UNION ALL SELECT 1, 12 UNION ALL SELECT 1, 13 UNION ALL SELECT 1, 14 UNION ALL SELECT 1, 15 UNION ALL SELECT 2, 21 UNION ALL SELECT 2, 22 UNION A...

按天分组怎么排序确定哪个是第一条记录?

网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com