100分求一sql语句

imho888 2012-06-25 08:44:37
表 A

time vale1 value2
11:00 2 3
11:30 4 5
11:00 3 3
11:30 4 3


sql语句,得到如下结果


time vale1 value2
11:00 2 3
11:30 4 5

其实就是去掉time字段重复的记录,显示所有字段值,重复记录取哪一条都可以。


sqlserver 的DISTINCT用法是可以做到的,但是orcale里的DISTINCT用法却做不到。


各位帮帮忙,谢谢。
...全文
111 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kobayashi 2012-06-25
  • 打赏
  • 举报
回复
select time ,min(vale1) ,max(vale2) from table group by time
zayx88 2012-06-25
  • 打赏
  • 举报
回复
用row_number()(partition by 字段 order by 字段 ) 是比较好的方法!
  • 打赏
  • 举报
回复
为啥上面都写的这么麻烦呢? 这样可以么

select time ,
max(vale1),
max(value2)
from A
group by time
xuyongjun5124020 2012-06-25
  • 打赏
  • 举报
回复
select * from temp where rowid in (select max(rowid) from temp group by time)
coolkisses 2012-06-25
  • 打赏
  • 举报
回复
借用滤重的语句也可以

select * from 
from table
where rowid in
( select max(rowid) from table
group by time)
槑党--一缕风 2012-06-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
SQL code


with t as(
select '11:00' time1, '2' value1,'3' value2 from dual
union all
select '11:30' time1, '4' value1,'5' value2 from dual
union all
select '11:00' time1, '3' value1,'3' value……
[/Quote]

这一个可以我测试了~~~
horizonlyhw 2012-06-25
  • 打赏
  • 举报
回复

with t as(
select '11:00' time1, '2' value1,'3' value2 from dual
union all
select '11:30' time1, '4' value1,'5' value2 from dual
union all
select '11:00' time1, '3' value1,'3' value2 from dual
union all
select '11:30' time1, '4' value1,'3' value2 from dual

)
select tt.time1,tt.value1,tt.value2
from (
select t.time1,t.value1,t.value2,row_number() over(partition by t.time1 order by t.value1) rn
from t) tt
where tt.rn = 1
zhjj1234 2012-06-25
  • 打赏
  • 举报
回复
select * from A T1
WHERE T1.ROWID=(SELECT MIN(ROWID) FROM A T2 WHERE TIME=T1.TIME GROUP BY TIME HAVING COUNT(TIME)>1)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧