oracle时间的查询问题

精神病281号 2011-11-16 11:12:45
现在有一张表的数据是这样子的

dz time data
北京 2011-10-12 23:58 78
北京 2011-10-12 23:50 78
广州 2011-10-12 23:53 733
广州 2011-10-12 23:57 783
北京 2011-10-11 23:59 80
北京 2011-10-11 23:50 78
广州 2011-10-11 23:30 733
广州 2011-10-11 23:45 45

现在需要查询出某个城市 每天时间最大的一条记录,(也就是说最接近凌晨的一条记录),如查询出北京的数据如下格式

dz time data
北京 2011-10-12 23:58 78
北京 2011-10-11 23:59 80
请大家帮帮忙,谢谢啦
...全文
158 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zujinsheng 2011-11-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xunmengzhi 的回复:]

SQL code

select t.dz , t.time , max(date) date from tb t where dz = '北京' group by t.dz , t.time
[/Quote]
+1
xunmengzhi 2011-11-21
  • 打赏
  • 举报
回复

select t.dz , t.time , max(date) date from tb t where dz = '北京' group by t.dz , t.time
xxpwj 2011-11-20
  • 打赏
  • 举报
回复
利用 pl/sql很方便
dawugui 2011-11-17
  • 打赏
  • 举报
回复
--如果你的time , data是两个字段
select t.dz , t.time , max(date) date from tb t where dz = '北京' group by t.dz , t.time

--如果你的time,data是一个字段,假设是time
select t.dz , max(time) time from tb t where dz = '北京' group by t.dz , to_char(t.time,'YYYY-MM-DD')
zhangqin12356 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tx2730 的回复:]
用row_number实现比较方便,性能也不差

SQL code


SELECT dz, time, data
FROM (SELECT dz,
time,
data,
ROW_NUMBER ()
……
[/Quote]

+1
学习了
play_cheng 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 play_cheng 的回复:]

select dz,
time,
data
from tb
where time in(select max(time)
from tb
where dz = 'beijing')
;
[/Quote]
tb是你的table名字 beijing你可以改成你要选择的城市
play_cheng 2011-11-17
  • 打赏
  • 举报
回复
select dz,
time,
data
from tb
where time in(select max(time)
from tb
where dz = 'beijing')
;
007-x 2011-11-16
  • 打赏
  • 举报
回复
用row_number实现比较方便,性能也不差

SELECT dz, time, data
FROM (SELECT dz,
time,
data,
ROW_NUMBER ()
OVER (PARTITION BY dz, TRUNC (time, 'dd')
ORDER BY time DESC)
rn
FROM table_name)
WHERE rn = 1
ORDER BY dz, time --不需要就去掉

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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