【问题标题】:SQL Query - Get the latest ratesSQL 查询 - 获取最新费率
【发布时间】:2016-05-09 15:19:26
【问题描述】:

我的桌子:

Date              Code        Rate
----              ----        ----
2015-01-01          1         100
2015-01-01          2         200
2015-01-01          3         300
2015-06-01          1         150

我怎样才能获得最新的费率(按日期),例如:

Date              Code        Rate
----              ----        ----
2015-01-01          2         200
2015-01-01          3         300
2015-06-01          1         150

SQL 查询?

【问题讨论】:

  • 你有没有尝试过?
  • 看看ROW_NUMBER
  • 使用group by Codeselect max(Rate) as Rate

标签: sql sql-server


【解决方案1】:

您可以使用子查询来做到这一点 试试这个:

SELECT * FROM (
    SELECT * FROM your_table ORDER BY date DESC LIMIT 5
) sub
ORDER BY date ASC

此代码从您的表中获取最后 5 行。

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
  • 感谢您的评论。我会在一分钟内更新:) @greg-449
【解决方案2】:

试试这个:

选择日期, 代码, 速度 从 ( 选择 ROW_NUMBER() over(partition by code order by date desc) as Id,date,code,rate 从你的表 ) X 其中 ID = 1 按日期排序

【讨论】:

    【解决方案3】:
    WITH cte AS (
        SELECT 
            *,
            ROW_NUMBER() OVER (PARTITION BY Code ORDER BY Date DESC) rn
        FROM yourtable
    )
    SELECT 
            Date, 
            Code, 
            Rate
    FROM cte 
    WHERE rn=1
    

    【讨论】:

      猜你喜欢
      • 2010-09-08
      • 2016-10-15
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 2012-01-27
      • 2021-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多