gpt4 book ai didi

mysql - 从数据库中选择多种货币代码的最新汇率的最佳方式

转载 作者:搜寻专家 更新时间:2023-10-30 23:17:37 28 4
gpt4 key购买 nike

全部!我有以下问题:我有 2 个简单的表。第一个,比如“货币”,存储有关货币的信息(ISO 4217 代码 (PK)、名称等)。第二个,“rates”,有以下字段:id、currency_code(引用currency.code)、date_added(日期时间)、rate。

我想要做的是为几个货币代码选择最新的汇率。首先,我想这样做:

SELECT r.rate
FROM rates r
WHERE r.id IN (SELECT id
FROM rates r1
WHERE r1.currency_code IN('USD', 'EUR')
GROUP BY r1.currency_code
ORDER BY r1.date_added DESC)
ORDER BY r.currency_code ASC

但我很快记起结果分组后会考虑ORDER子句。在我的例子中,子查询最终返回了最早利率的 ids...

我想我可以分别获得每个货币代码的汇率,但我仍然希望我能够使用一个干净的查询。

最佳答案

假设最新的汇率是id最高的汇率可以用:

SELECT *
FROM rates r
WHERE r.id IN (
SELECT MAX(r1.id)
FROM rates r1
GROUP BY r1.currency_code
) T;

但我强烈建议使用另一种我喜欢的模式。我在 another answer 中解释过今天早上:

SELECT
c.*,
r1.*
FROM currency c
INNER JOIN rates r1 ON c.code = r1.currency_code
LEFT JOIN rates r2 ON r1.currency_code = r2.currency_code AND r2.id > r1.id
WHERE r2.id IS NULL;

关于mysql - 从数据库中选择多种货币代码的最新汇率的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11135522/

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