如何获取最新值?

Posted

技术标签:

【中文标题】如何获取最新值?【英文标题】:How to get the latest value? 【发布时间】:2022-01-18 08:47:45 【问题描述】:

我正在尝试编写一个查询,我只想获取最大(日期),并且我必须按其余信息(例如 job_ID、invoice、total_paid 和 payment_method)进行分组。

我无法按付款方式分组,因为逻辑上它不正确,还因为付款方式不同......而且,我不能在这里使用 listagg。

知道如何实现我的目标吗? 我快要结束了,但是付款方式导致代码中的一些错误...

提前谢谢你:)

【问题讨论】:

提供完整的 CREATE TABLE,一些示例数据作为 INSERT INTO(两个脚本都是代码格式的文本),并显示该数据的所需输出并带有详细说明。还要指定精确的 DBserver 版本。 不要在您的查询中包含付款方式。然后你不需要按它分组。如果您需要了解该特定行的付款方式,您可以使用另一个 SQL 查询来查询它。 您标记了 mysql 和 Snowflake,但它们并不相同。您的问题缺少很多信息,无法有效帮助其他人解决您的问题。请用更多信息更新您的问题。 【参考方案1】:

对于任何带有qualify row_number() over()id,您可以获得最大date 的行:

with data as (
    select $1 id, $2 date, $3 value
    from values (1, 1, 'a')
        , (1, 2, 'b')
        , (1, 3, 'c')
        , (2, 1, 'e')
        , (2, 2, 'f')
        , (2, 3, 'g')
)

select *
from data
qualify row_number() over(partition by id order by date desc) = 1
;

如果这不是您想要的 - 您需要通过详细说明示例输入数据和所需结果来改进问题。

【讨论】:

以上是关于如何获取最新值?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 MySQL 列中的 JSON 文档中获取最新值?

如何在 Swift Playgrounds 中睡觉并获取最新的异步值?

如何找到最新的分区值

如何获取 BigQuery 中的最新行

如何在 Laravel 中获取最新的活动记录?

请教各位大神,用mongoose如何获取最新插入的一条数据的id