查询获取最新记录

时间:2015-11-21 23:55:48

标签: mysql sql oracle

我有一个只有两列(Rate,Date)的表。现在费率每天都在变化。我没有存储时间,只存储日期。 我正在寻找一个可以显示每天最新条目的查询。

假设我的表有以下条目 -

records

+-------------------+--------------+
| Rate              | Date         |
+-------------------+--------------+
| 1                 | 01/01/2015   |
| 4                 | 01/01/2015   |
| 3                 | 01/02/2015   |
| 2                 | 01/02/2015   |
+-------------------+--------------+

输出应该是 -

+-------------------+--------------+
| Rate              | Date         |
+-------------------+--------------+
| 4                 | 01/01/2015   |
| 2                 | 01/02/2015   |
+-------------------+--------------+

如果我按日期使用Group,我会获得第1条记录。我总想要每天的最后一条记录。尝试编写子查询,但不起作用。

编辑 - 我明白没有钥匙几乎不可能找到它。但是,即使存储时间也是可能的。?

2 个答案:

答案 0 :(得分:0)

我希望这会有所帮助

UPDATE

答案 1 :(得分:0)

甲骨文:

WITH data (rate, "date") AS (
    SELECT 1, DATE'2015-01-01' FROM DUAL UNION ALL
    SELECT 4, DATE'2015-01-01' FROM DUAL UNION ALL
    SELECT 3, DATE'2015-02-01' FROM DUAL UNION ALL
    SELECT 2, DATE'2015-02-01' FROM DUAL
)
SELECT
    MAX(rate) KEEP (DENSE_RANK LAST ORDER BY ROWNUM) rate,
    "date"
FROM
    data
GROUP BY
    "date"