mysql - 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
解决方案
使用子查询获取最近的 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
推荐阅读
- python - 无法使用 PyInstaller 可执行文件导入 Geopandas - 尽管在虚拟环境中运行良好
- python - Pip:将依赖项安装为可编辑
- c# - 如何从命令行编译 NuGet 项目?
- linux - 需要帮助编写带有循环的 bash 脚本
- javascript - 如何从日期数组中获取最新日期?- Javascript/打字稿
- node.js - npm install 给出 ENOENT 错误
- java - cassandra 插入和更新
- intellij-idea - 尽管设置了 GRADLE_HOME 变量,IntelliJ 仍不断询问 Gradle Location
- nested - Rust 中的嵌套常量
- ruby-on-rails - 如何查看模型是否存在,如果不使用单个表单则创建?