一张表中有张三、李四、王五、、、、、等N个人,这些人中 每个人有多条数据 但是时间不同
想要的结果: 把张三、李四、王五、、、等人各按时间排序后 取每个人的第一条数据
注意点:这张表的数据在10W以上,要效率比较好的查询语句 求高手指教啊,共同学习!!!!!!!!!!!!!
想要的结果: 把张三、李四、王五、、、等人各按时间排序后 取每个人的第一条数据
注意点:这张表的数据在10W以上,要效率比较好的查询语句 求高手指教啊,共同学习!!!!!!!!!!!!!
解决方案 »
- 帮忙写个物化视图
- ARC0: media recovery disabled ???
- 请教一ORACLE错误:ORA-00911 如何解决?很急,在线等待解答
- 【求助】sql中如何筛选掉重复的记录,并计数???
- 求多行记录转换为一条记录sql。
- 关于triger 的问题
- 全公司都讨论了2天,不能解决,只好问大家了。
- oracle初学者弱问:我写好的pl/sql程序在哪里执行呢
- 请问在ASP中如何利用ORALE OBJECT FOR OLE调用存储过程?
- 连不上oracle数据库
- Oracle导入dmp文件后,出现很多包头、包体编译错误怎么解决?
- 求救..ORA-12154: TNS:could not resolve the connect identifier specified~~搞了好久了没解决!
select max(time)||name from table group by name
)
select * from
(select t.*, row_number() over (partition by name order by tdate) rn from t)
where rn = 1;
--这样查出来是时间最早的数据,如果要最晚的,
select * from
(select t.*, row_number() over (partition by name order by tdate desc) rn from t)
where rn = 1;
那么这个子查询查询出来的结果就是这样格式的一个结果集。
然后再去查询全表,对比条件也就是time+name这样一个组合形式。
谢谢 我听懂意思了
我想问下 我单独用 select max(time)||name from table group by name 语句查出来的数据怎么比用整个语句查出来的数据还少 不是应该相同吗? 是因为表中的数据有多个 “时间与名称”相同的吗
是的。肯定要少,因为这里使用了max函数,然后根据name分组了,那么有相同name的数据,就只有一条会查询出来,就是最大的一条。