oracle 查询每组条数,Oracle SQL查询:根据时间检索每组的最新值
這是一個完整的,經過測試的例子。
CREATE TABLE tbl1 (ID NUMBER, dt DATE, quantity NUMBER);
DELETE FROM tbl1;
insert into tbl1 values (1,to_date('2010-01-04 11:00','YYYY-MM-DD HH24:MI'), 152);
insert into tbl1 values (2,to_date('2010-01-04 11:00','YYYY-MM-DD HH24:MI'), 210);
insert into tbl1 values (1,to_date('2010-01-04 10:45','YYYY-MM-DD HH24:MI'), 132);
insert into tbl1 values (2,to_date('2010-01-04 10:45','YYYY-MM-DD HH24:MI'), 318);
insert into tbl1 values (4,to_date('2010-01-04 10:45','YYYY-MM-DD HH24:MI'), 122);
insert into tbl1 values (1,to_date('2010-01-04 10:30','YYYY-MM-DD HH24:MI'), 1);
insert into tbl1 values (3,to_date('2010-01-04 10:30','YYYY-MM-DD HH24:MI'), 214);
insert into tbl1 values (2,to_date('2010-01-04 10:30','YYYY-MM-DD HH24:MI'), 5515);
insert into tbl1 values (4,to_date('2010-01-04 10:30','YYYY-MM-DD HH24:MI'), 210);
SELECT t.ID
, t.DT
, t.QUANTITY
FROM tbl1 t
,( SELECT ID
, MAX(dt) dt
FROM tbl1
GROUP BY ID ) t2
WHERE t.id = t2.id
AND t.dt = t2.dt
結果:
1? ?1/4/2010 11:00:00 AM? ? 152
2? ?1/4/2010 11:00:00 AM? ? 210
3? ?1/4/2010 10:30:00 AM? ? 214
4? ?1/4/2010 10:45:00 AM? ? 122
如果你想獲得最后XX分鐘的記錄,你可以這樣做(我在這個例子中使用500分鐘,用你想要的任何東西替換500):
SELECT t.ID
, t.DT
, t.QUANTITY
FROM tbl1 t
,( SELECT ID
, MAX(dt) dt
FROM tbl1
WHERE dt >= SYSDATE - (500 / 1400)
GROUP BY ID ) t2
WHERE t.id = t2.id
AND t.dt = t2.dt;
總結
以上是生活随笔為你收集整理的oracle 查询每组条数,Oracle SQL查询:根据时间检索每组的最新值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蟑螂喜欢吃什么?
- 下一篇: 老公姓梁,老婆姓巫网名怎么取?