【发布时间】:2015-09-29 09:49:38
【问题描述】:
我有 Table1 三列:
Key | Date | Price
----------------------
1 | 26-May | 2
1 | 25-May | 2
1 | 24-May | 2
1 | 23 May | 3
1 | 22 May | 4
2 | 26-May | 2
2 | 25-May | 2
2 | 24-May | 2
2 | 23 May | 3
2 | 22 May | 4
我想选择上次更新值 2 的行 (24-May)。日期使用RANK 函数排序。
我无法获得预期的结果。任何帮助将不胜感激。
SELECT *
FROM (SELECT key, DATE, price,
RANK() over (partition BY key order by DATE DESC) AS r2
FROM Table1 ORDER BY DATE DESC) temp;
【问题讨论】:
-
你试过的查询在哪里?
-
SELECT * FROM (SELECT primary_key, DATE, price, RANK() over (partition BY primary_key order by DATE DESC) AS r2 FROM Table1 ORDER BY DATE DESC ) temp
-
我不明白,你想返回 pk = 3 的行而不返回其他行?怎么会?
-
我提到我想检索上次插入值 2 的行,然后它没有改变(我不想检索其他行,因为我不想要它们)
标签: sql oracle rank window-functions