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

sql 分组取每组第一条

不知道你什 么数据库,给出sqlserver和oracle的 select 星期,字母from(select rank() over(partition by 星期 order by 字母 desc) id,*from 表) t1where id=1 或者 select 星期,max(字母)from 表group by 星期

select A,C,(select B from T t where t.A = K.A AND t.C = K.C) B from( select t.A A,max(t.C) C from T tgroup by T.A) K 内容拓展: 一、SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语...

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

select m, nfrom ( select row_number () over (partition by m order by n desc) rn,--以m分组,分组内以n倒序排列求每组中各自的序号 m, n from table where ...) wwhere w.rn

用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...

在分组中使用max()函数即可。例图中表格:按b列分组,求D列最大值:select b,max(d) from a group by b如果是最小,则可以使用 min()函数

使用分析函数row_number() over (partiion by ... order by ...)来进行分组编号,然后取分组标号值为1的记录即可。目前主流的数据库都有支持分析函数,很好用。 其中,partition by 是指定按哪些字段进行分组,这些字段值相同的记录将在一起编号...

select 楼栋id,楼栋名称,管理人员联系方式,层高,面积 from ( select 楼栋id,楼栋名称,管理人员联系方式,row_number() over(partition by 楼栋id order by 层高 desc) rn,层高,SUM(建筑面积) OVER(PARTITION BY 楼栋id) as 面积 from dbo.进阶视...

select * from 表名 a where exists (select top 2 * from (select a,a1,a2 from 表名 group by a,a2) b where a.a=b.a and a.a2=b.a2)

在分组中使用max()函数即可。 例图中表格: 按b列分组,求D列最大值: select b,max(d) from a group by b 如果是最小,则可以使用 min()函数

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