【发布时间】:2022-01-21 04:08:29
【问题描述】:
我有一个表,其中包含 id、city_id 和 stock,如下所示。
| id | city_id | stock |
|---|---|---|
| 1 | 1 | 1000 |
| 2 | 2 | 500 |
| 3 | 3 | 11000 |
| 4 | 2 | 600 |
| 5 | 3 | 12000 |
| 6 | 1 | 2000 |
| 9 | 3 | 13000 |
| 10 | 1 | 3000 |
| 11 | 1 | 4000 |
| 12 | 2 | 700 |
要为每个 city_id 选择最新的股票值,我使用了以下查询,效果很好。
SELECT `stock`
FROM `stock_table`
WHERE id in ( SELECT MAX(id)
FROM `stock_table`
GROUP BY city_id
);
返回
| stock |
|---|
| 13000 |
| 4000 |
| 700 |
现在我想为每个 city_id 选择第二个最新的股票条目。所以输出应该如下表所示。
| stock |
|---|
| 12000 |
| 3000 |
| 600 |
非常感谢任何帮助。谢谢!
【问题讨论】: