【发布时间】:2021-12-23 20:36:11
【问题描述】:
我有问题。在我的数据库中,我有下表:
| openTime | market | coin | period |
|---------------|--------|------|--------|
| 1635768000000 | USDT | ETH | 1h |
| 1635764400000 | USDT | ETH | 1h |
| 1635760800000 | USDT | ETH | 1h |
| 1635768000000 | USDT | ETH | 2h |
| 1635760800000 | USDT | ETH | 2h |
| 1635753600000 | USDT | ETH | 2h |
| 1635768000000 | USDT | BTC | 1h |
| 1635764400000 | USDT | BTC | 1h |
现在我要查询的是给出市场和硬币的每个市场硬币周期组合的最后一个 openTime。就我而言,我想找到每个 USDT 和 ETH 组合的最后一行,所以我的结果是:
| openTime | market | coin | period |
|---------------|--------|------|--------|
| 1635768000000 | USDT | ETH | 1h |
| 1635768000000 | USDT | ETH | 2h |
我已经尝试过这样的查询:
SELECT * FROM (SELECT * FROM Candlestick WHERE market = 'USDT' AND coin = 'ETH') a WHERE a.openTime IN (SELECT MAX(openTime) FROM (SELECT * FROM Candlestick) b GROUP BY b.period) GROUP BY a.coin, a.period;
但这给我返回了一个奇怪的结果,我得到了某种最新的行,但不是 ETH 的最后一行。有人可以帮帮我吗?
PS:我在跑:10.3.31-MariaDB-0ubuntu0.20.04.1-log Ubuntu 20.04
【问题讨论】: