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 COUNT(*) FROM (SELECT teacher_id FROM fk_class GROUP BY teacher_id) AS a; 这是我的一个表,按teacher_id 分组

如果是Oracle可以用rownum,如果是MySQL可以用limit限制输出条数 eg:select *from tablename t where t.age

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

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

用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 COUNT(*) FROM (SELECT 分组字段 FROM 表 GROUP BY 分组字段 )别名 或者 SELECT COUNT(*) FROM (SELECT distinct 分组字段 FROM 表)别名 扩展资料:SQL分组查询 在SQL Server中使用的分组查询是ORDER BY子句,使用ORDER BY子句要同聚...

在sqlserver中用的是top关键字 比如查询user表 select * from user limit 1 ;这就可以了,, 另外 mysql 中的翻页很方便的。比sqlserver中的简单多了。

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