oracle _ sql 求 截止日 最大的日期的那条数据的数据集 含有group by
我只能这样查:selectmax(date),typefromTwheredate《sysdategroupbyT.type;怎么找到max(date)的那个id呢?也返...
我只能这样查:select max(date),type from T where date 《 sysdate group by T.type ;
怎么找到max(date) 的那个id 呢 ? 也返回的是一个group的数据集
我还这样写过 select * from T join (select date,type from T group by t.type order by date) t1 on t.type =t1.type and t.date = t1.date ;
但是这样、会出现一些问题、时间都是date类型、而不是datetime类型、、就会有重复的,而且在后面我还要做sum 、就会一下子多统计进去、、、纠结啊、希望大神能支支招 展开
怎么找到max(date) 的那个id 呢 ? 也返回的是一个group的数据集
我还这样写过 select * from T join (select date,type from T group by t.type order by date) t1 on t.type =t1.type and t.date = t1.date ;
但是这样、会出现一些问题、时间都是date类型、而不是datetime类型、、就会有重复的,而且在后面我还要做sum 、就会一下子多统计进去、、、纠结啊、希望大神能支支招 展开
2个回答
展开全部
select 销首t1.* from t t1,
(select 樱亩type,max(date) maxdate from t where date <sysdate group by type) t2
where 亏颂数t1.type=t2.type and t1.date=t2.maxdate
这样?
追问
这不是跟我上面的一样吗? 无非一个是 join 一个where 哎、、这样、日期一样的时候、就求出两条啦、、sum的时候就会出错、、要求得是【每种分类操作日期最后的那条数据的集合】注:日期相同时候 可随机取一条
追答
select * from
(select t.*,row_number() over (partition by type order by date desc) rn from t) s
where rn=1
这样?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询