我正在尝试过滤历史性的Betfair数据。
我想为FULL_DESCRIPTION
中的每个项目获取一条记录。
我正在使用的SQL为每个项目提供了几条记录,每条记录都有不同的LATEST_TAKEN
。
已经过滤LATEST_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
的记录
答案 0 :(得分:0)
所以接受你的查询,我只是改变了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 - 选择 - ODDS - LATEST_TAKEN
英格兰足球/巴克莱英超联赛/赛程1月31日/赫尔对纽卡斯尔0 - 0 9.2 31-01-2015 12:34:52
英格兰足球/巴克莱英超联赛/赛程1月31日/赫尔对纽卡斯尔0 - 0 9.8 28-01-2015 03:09:13
英格兰足球/巴克莱英超联赛/赛程1月31日/赫尔对纽卡斯尔0 - 0 10.5 25-01-2015 19:19:35
英格兰足球/巴克莱英超联赛/赛程1月31日/赫尔对纽卡斯尔0 - 0 9.4 24-01-2015 11:51:58
英格兰足球/巴克莱英超联赛/赛程1月31日/赫尔对纽卡斯尔0 - 1 9.2 31-01-2015 12:45:05
英格兰足球/巴克莱英超联赛/赛程1月31日/赫尔对纽卡斯尔0 - 1 9.6 31-01-2015 12:00:57
英格兰足球/巴克莱英超联赛/赛程1月31日/赫尔对纽卡斯尔0 - 1 9 31-01-2015 11:50:25
英格兰足球/巴克莱英超联赛/赛程1月31日/赫尔对纽卡斯尔0 - 1 8.8 30-01-2015 18:26:06
英格兰足球/巴克莱英超联赛/赛程1月31日/赫尔对纽卡斯尔0 - 2 16 31-01-2015 12:45:05
英格兰足球/巴克莱英超联赛/赛程1月31日/赫尔对纽卡斯尔0 - 2 16.5 31-01-2015 12:43:22
我需要第1,5和9行 I.E.对于每场比赛(FULL_DESCRIPTION),在比赛开始前的最长时间(LATEST_TAKEN)正确得分(SELECTION)ODDS([DT ACTUAL_OFF]。