gpt4 book ai didi

根据状态获取最新记录需要 SQL 吗?

转载 作者:搜寻专家 更新时间:2023-10-30 22:11:13 24 4
gpt4 key购买 nike

我有一个表 TRX,它有多个值 TRXID,用于给定的 SRCID 示例数据集,如下所示。

TRXID       STATUS  TIMESTAMP                           SRCID
839 EN 30-OCT-14 11.08.13.597000000 AM B0D35D0168G
1189 MO 30-OCT-14 11.13.19.554000000 AM B0D35D0168G
1549 CA 30-OCT-14 12.13.42.246000000 PM B0D35D0168G

1666 EN 30-OCT-14 02.43.22.271000000 PM A0D77E2168G
2221 CA 30-OCT-14 05.49.16.712000000 PM A0D77E2168G
2244 EN 31-OCT-14 11.21.18.146000000 AM A0D77E2168G ...

我只想根据最新的 TIMESTAMP 获取所有具有最新状态 = 'CA' 的 SRCID。因此,例如,如果我们对上述数据集运行查询,结果只会得到“B0D35D0168G”。

最佳答案

这将适用于 Oracle:

SELECT srcid FROM (
SELECT srcid, status, ROW_NUMBER() OVER ( PARTITION BY srcid ORDER BY timestamp DESC ) AS rn
FROM trx
) WHERE status = 'CA' AND rn = 1;

如果您还需要检索其他列(例如,如果您需要知道 timestamp 的最后一个值是什么),它会起作用。

SELECT trxid, srcid, timestamp FROM (
SELECT trxid, srcid, timestamp, status, ROW_NUMBER() OVER ( PARTITION BY srcid ORDER BY timestamp DESC ) AS rn
FROM trx
) WHERE status = 'CA' AND rn = 1;

关于根据状态获取最新记录需要 SQL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27951150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com