【问题标题】:Select value where max(date)选择最大值(日期)的值
【发布时间】:2022-07-22 21:51:10
【问题描述】:

我有一个数据集,其中包含同一医疗程序的多个值。我想选择date_ref 最大的值,但我不知道如何做到这一点。下面是数据集的示例

PROC_CODE | VALUE | DATE
123456      20.90  2020-01-01
123456      30.00  2021-01-01
123456      15.47  2022-06-01

我只想返回数据集的最后一行,它为最近的日期分配了VALUE

PROC_CODE | VALUE | DATE
123456      15.47  2022-06-01

我尝试了以下代码,但它返回错误。我的逻辑中缺少什么?

SELECT 
PROC_CODE, VALUE
FROM MY_TABLE
WHERE MAX(DATE)
GROUP BY PROC_CODE -- Only grouping by PROC_CODE because grouping by PROC_CODE and VALUE returns the 3 lines of the dataset

【问题讨论】:

标签: sql


【解决方案1】:

您可以在 WHERE 子句中使用子查询来执行此操作:

SELECT PROC_CODE, VALUE, DATE
FROM MY_TABLE
WHERE DATE = (SELECT MAX(DATE) FROM MY_TABLE);

如果您想要每个 proc_code 的最大日期值,那么相关子查询也可以工作:

SELECT PROC_CODE, VALUE, DATE
FROM MY_TABLE as MT
WHERE DATE = (SELECT MAX(DATE) FROM MY_TABLE WHERE PROC_CODE = MT.PROC_CODE);

【讨论】:

    猜你喜欢
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    相关资源
    最近更新 更多