www.1862.net > sql 分组去重问题求助

sql 分组去重问题求助

可以这样 select * from table a where a.number = (select min(b.number) from table b where a.group = b.group)

用分析函数row_number() over (partition by ... order by ...)给记录进行分组编号,按人员id和考勤日期进行分组(如果考勤日期带时分秒,需先截断到日),按时间升序排序;这样,就得到人员ID在同一考勤日期下的编号值(编号值是从1开始的),然后...

SELECT A, B, C FROM TABLE_NAME AA WHERE ROWID = (SELECT MIN(ROWID) FROM TABLE_NAME BB WHERE BB.A = AA.A GROUP BY BB.A); 有点混乱,还不如说是某列重复时取第一条数据,你看看这是不是你要的

你要怎么去重,是按天,还是按照完全的时间(时分秒)来去重。 去重以后要达到什么效果,你的需求说的不明确,也就没办法操作,而且还要说明是什么数据库,oracle和sqlserver的方法也是不同的。

delete afrom 数据_1 awhere exists( select * from 数据_1 b where b.[会员名]=a.[会员名] and b.[创建时间]=a.[创建时间] and b.[状态]a.[状态]) and a.[状态]='否'

select * from temp_01 where id in(select id from temp_01 where to_char(op_itme,'yyyy-mm') between '201311'and '201407'group by id having count(*)>1),如果没有理解错的话,这个应该就可以了!

select 时间,count(*) from (select distinct 时间,用户名 from 表名) t group by 时间

你这样根本就无法分组,除非F1每组的“AA”、“BB”值不一样,比如下面这样的数据,则可以按你的要求进行分组。 我的实际DB不一样,对比如下: T=a_lmo_temp F1=id1 F2=id2 查询SQL如下: SELECT A1.ID1 AS F1,A1.ID2 AS F2,A2.NUMS AS F3 FROM A_LM...

select name, sum (case when sort1=1 and sort2=0 then num end) a, sum (case when sort1=1 and sort2=1 then num end) b, sum (case when sort1=2 and sort2=0 then num end) c, sum (case when sort1=2 and sort2=1 then num end) d from ta...

SELECT * FROM TABLE HAVING COL IS NOT NULLHAVING筛选条件去掉空值

网站地图

All rights reserved Powered by www.1862.net

copyright ©right 2010-2021。
www.1862.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com