【发布时间】:2017-05-10 14:47:27
【问题描述】:
我有这张桌子
SITE S_ID BAN COUNT P V TIMESTAMP
23 1 4 1500 0,05 50 10/05/17 09:58:22,609000000
23 3 3 800 0,05 50 10/05/17 09:58:22,736000000
23 2 3 3000 0,05 50 10/05/17 09:58:22,674000000
23 1 4 1500 0,05 50 10/05/17 15:57:04,079000000
23 1 4 1499 0,05 50 10/05/17 15:53:38,851000000
20 1 3 2000 0,1 50 10/05/17 10:57:07,172000000
20 2 3 2000 0,1 50 10/05/17 10:59:50,127000000
20 3 2 3000 0,1 50 10/05/17 11:00:39,051000000
20 4 2 3000 0,1 50 10/05/17 11:01:15,533000000
我正在尝试获得这样的东西:
SITE S_ID BAN COUNT P V TIMESTAMP
23 3 3 800 0,05 50 10/05/17 09:58:22,736000000
23 2 3 3000 0,05 50 10/05/17 09:58:22,674000000
23 1 4 1500 0,05 50 10/05/17 15:57:04,079000000
20 1 3 2000 0,1 50 10/05/17 10:57:07,172000000
20 2 3 2000 0,1 50 10/05/17 10:59:50,127000000
20 3 2 3000 0,1 50 10/05/17 11:00:39,051000000
20 4 2 3000 0,1 50 10/05/17 11:01:15,533000000
即对于每个 SITE,S_ID、BAN、COUNT、P、V 和 TIMESTAMP 以及 MAX(TIMESTAMP)
【问题讨论】:
-
这是一个简单的
group by。你试过这样做吗? -
是的,我做到了。问题是查询返回两个 S_ID =1 到站点编号 23。我只需要具有最大时间戳的那个
-
然后添加 where 子句?
WHERE TIMESTAMP = MAX(TIMESTAMP) -
这不起作用
-
如果同一个站点有 2 个 S_ID,你想要什么 S_ID?
标签: sql oracle timestamp top-n