cfnr.net
当前位置:首页 >> sql:用group By分组后,每组随意取一个记录? >>

sql:用group 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 列名1,列名2,列名3,列名4 from 表名 where 条件 group by A,B group by A,B这句的意思就是按A分组,当分组后再在分组后再按B分组

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

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

SELECT * FROM (SELECT * FROM tablename ORDER BY RAND()) as a GROUP BY a.type

A与max(C)组合后,值是否唯一? 如果唯一可以这样: 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 t group by T.A ) K

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

要得到每组的合计可以用2、3楼,要总计用1楼,想一次性得到分组合计以及总计,sql2005可以这么写: SELECT 分组字段 FROM 表 GROUP BY 分组字段 compute sum(COUNT(*)) ===== 那就这样 SELECT COUNT(*) FROM (SELECT 分组字段 FROM 表 GROUP BY...

select tag, count(distinct(id)) from table_name group by tag; mysql里执行正确 模拟数据: 操作结果:

--不知道你需要依据什么分组,如下是根据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...

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