首页 > 解决方案 > mySQL如何从限制日期中选择同一字段中的一些数据

问题描述

我通过查询从表中获取了数据

SELECT dt, place
FROM horseri
WHERE horseid = 'C299'
AND dt < '20200715'
ORDER BY dt DESC 

如下,dt日期在哪里place,中奖地点在哪里

dt         | place
----------------------
2020-07-12 | 8
2020-06-07 | 2
2020-05-17 | 3
2020-04-12 | 9
2020-03-29 | 12
2020-03-01 | 3
2020-02-16 | 4
2020-01-27 | 5
2019-12-18 | 3
2019-11-23 | 10
2019-10-30 | 2
2019-10-01 | 9
2019-09-08 | 2
2019-07-14 | 7
2019-07-01 | 13
2019-06-16 | 7
2019-05-18 | 8
2019-03-31 | 13
2019-03-17 | 12

我如何才能从最近 10 个日期的数据中获得前 3 个中奖名额?

我的预期输出将是

dt         | place
----------------------
2020-06-07 | 2
2020-05-17 | 3
2020-03-01 | 3
2019-12-18 | 3

标签: mysql

解决方案


使用子查询获取最近的 10 个日期。然后从中选择前 3 个位置。

SELECT dt, place
FROM (
    SELECT dt, place
    FROM horseri
    where horseid = 'C299'
    ORDER BY dt DESC
    LIMIT 10
) as x
WHERE place <= 3

推荐阅读