gpt4 book ai didi

mysql - 如何仅选择小于 'target' 值的最接近值?

转载 作者:行者123 更新时间:2023-11-30 22:49:47 24 4
gpt4 key购买 nike

我正在尝试过滤 Betfair 的历史数据。我想为 FULL_DESCRIPTION 中的每个项目获取一条记录。我使用的 SQL 为每个项目提供了多个记录,每个记录都有不同的 LATEST_TAKENLATEST_TAKEN 已被过滤以提供小于 DT ACTUAL_OFF 的值(均为日期/时间)。我看过其他帖子,但我的能力水平与我的热情不符。

我目前正在使用:

SELECT Bfinf_other_150126to150201_150204124439.*
FROM Bfinf_other_150126to150201_150204124439
WHERE (((Bfinf_other_150126to150201_150204124439.FULL_DESCRIPTION) Like "English Soccer/Barclays Premier League*")
AND ((Bfinf_other_150126to150201_150204124439.LATEST_TAKEN) < [DT ACTUAL_OFF])
AND ((Bfinf_other_150126to150201_150204124439.SPORTS_ID)="1")
AND ((Bfinf_other_150126to150201_150204124439.EVENT)="Correct Score")
AND ((Bfinf_other_150126to150201_150204124439.IN_PLAY)="pe"))
ORDER BY Bfinf_other_150126to150201_150204124439.EVENT_ID, Bfinf_other_150126to150201_150204124439.FULL_DESCRIPTION, Bfinf_other_150126to150201_150204124439.SELECTION, Bfinf_other_150126to150201_150204124439.LATEST_TAKEN DESC;

这给我留下了每个项目的多个记录,而我只想要 LATEST_TAKEN 值最接近 DT ACTUAL_OFF

的记录

最佳答案

所以根据您的查询,我只是更改了 ORDER BY 子句中的顺序,因此 LATEST_TAKEN 是第一个排序参数。然后我添加了一个 LIMIT 1 所以它只返回一个结果。我认为这应该会返回您要查找的内容

SELECT
Bfinf_other_150126to150201_150204124439.*
FROM
Bfinf_other_150126to150201_150204124439
WHERE
(((Bfinf_other_150126to150201_150204124439.FULL_DESCRIPTION) Like "English Soccer/Barclays Premier League*") AND
((Bfinf_other_150126to150201_150204124439.LATEST_TAKEN)<[DT ACTUAL_OFF]) AND
((Bfinf_other_150126to150201_150204124439.SPORTS_ID)="1") AND
((Bfinf_other_150126to150201_150204124439.EVENT)="Correct Score") AND
((Bfinf_other_150126to150201_150204124439.IN_PLAY)="pe"))
ORDER BY
Bfinf_other_150126to150201_150204124439.LATEST_TAKEN DESC,
Bfinf_other_150126to150201_150204124439.EVENT_ID,
Bfinf_other_150126to150201_150204124439.FULL_DESCRIPTION,
Bfinf_other_150126to150201_150204124439.SELECTION
LIMIT 1;

为了清楚起见,我简化了一些事情:

SELECT   
Bfinf_other_150126to150201_150204124439.FULL_DESCRIPTION, Bfinf_other_150126to150201_150204124439.SELECTION, Bfinf_other_150126to150201_150204124439.ODDS, Bfinf_other_150126to150201_150204124439.LATEST_TAKEN
FROM Bfinf_other_150126to150201_150204124439
WHERE
(((Bfinf_other_150126to150201_150204124439.SPORTS_ID)="1") AND ((Bfinf_other_150126to150201_150204124439.EVENT)="Correct Score") AND ((Bfinf_other_150126to150201_150204124439.IN_PLAY)="pe") AND ((Bfinf_other_150126to150201_150204124439.FULL_DESCRIPTION) Like "English Soccer/Barclays Premier League*") AND ((Bfinf_other_150126to150201_150204124439.LATEST_TAKEN)<[DT ACTUAL_OFF]))
ORDER BY
Bfinf_other_150126to150201_150204124439.EVENT_ID, Bfinf_other_150126to150201_150204124439.FULL_DESCRIPTION, Bfinf_other_150126to150201_150204124439.SELECTION, Bfinf_other_150126to150201_150204124439.LATEST_TAKEN DESC;

给予:

FULL_DESCRIPTION - 选择 - 赔率 - LATEST_TAKEN

英格兰足球/巴克莱 super 联赛/赛程 1 月 31 日/赫尔城 v 纽卡斯尔 0 - 0 9.2 31-01-2015 12:34:52

英格兰足球/巴克莱 super 联赛/赛程 1 月 31 日/赫尔城 v 纽卡斯尔 0 - 0 9.8 28-01-2015 03:09:13

英格兰足球/巴克莱 super 联赛/赛程 1 月 31 日/赫尔城 v 纽卡斯尔 0 - 0 10.5 25-01-2015 19:19:35

英格兰足球/巴克莱 super 联赛/赛程 1 月 31 日/赫尔城 v 纽卡斯尔 0 - 0 9.4 24-01-2015 11:51:58

英格兰足球/巴克莱 super 联赛/赛程 1 月 31 日/赫尔城 v 纽卡斯尔 0 - 1 9.2 31-01-2015 12:45:05

英格兰足球/巴克莱 super 联赛/赛程 1 月 31 日/赫尔城 v 纽卡斯尔 0 - 1 9.6 31-01-2015 12:00:57

英格兰足球/巴克莱 super 联赛/赛程 1 月 31 日/赫尔城 v 纽卡斯尔 0 - 1 9 31-01-2015 11:50:25

英格兰足球/巴克莱 super 联赛/赛程 1 月 31 日/赫尔城 v 纽卡斯尔 0 - 1 8.8 30-01-2015 18:26:06

英格兰足球/巴克莱 super 联赛/赛程 1 月 31 日/赫尔 v 纽卡斯尔 0 - 2 16 31-01-2015 12:45:05

英格兰足球/巴克莱 super 联赛/赛程 1 月 31 日/赫尔 v 纽卡斯尔 0 - 2 16.5 31-01-2015 12:43:22

我需要第 1,5 和 9 行
IE。对于每场比赛 (FULL_DESCRIPTION) 正确比分 (SELECTION) ODDS 在事件开始前 ([DT ACTUAL_OFF) 的最大时间 (LATEST_TAKEN)。

关于mysql - 如何仅选择小于 'target' 值的最接近值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28508704/

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