gpt4 book ai didi

mysql - 根据日期和组返回最后 5 个结果

转载 作者:行者123 更新时间:2023-11-29 20:36:01 27 4
gpt4 key购买 nike

在过去的几天里,我已尽力用 google 搜索此问题,但找不到 MS Access 或 MySQL 所需的解决方案

我有一个足球比赛结果表,我想根据日期提取每个主队最近 5 场比赛的结果。

我已经按照微软的建议在access中尝试过这个,但我无法让它按照它所说的方式工作。我对 MySQL 很陌生,并且对下面的代码有了一些了解,但它只返回最后一个结果,如果我将其更改为 2,它将不会运行,因为子查询返回超过 1 行。我不需要确切的答案,如果有人能给我一个 Access 或 MySQL 的链接,我会很高兴。下面是我正在使用的,它确实返回了最后的结果。

SELECT t1.*
FROM TBL_ALL_English_Results t1
WHERE t1.id = (SELECT t2.id
FROM TBL_ALL_English_Results t2
WHERE t2.Home_Team = t1.Home_Team
ORDER BY t2.id DESC
LIMIT 1)

最佳答案

考虑使用相关计数聚合查询,该查询按 DATEHOME_TEAM 组计算记录的排名顺序,然后使用此排名顺序来筛选查询结果。下面应该符合 MySQL 和 MS Access,甚至 SQL Server 和其他方言。

SELECT t1.*
FROM TBL_ALL_English_Results t1
INNER JOIN
(
SELECT t2.Home_Team, t2.Date,
(SELECT Count(*) FROM TBL_ALL_English_Results sub
WHERE t2.Date <= sub.Date
AND t2.Home_Team = sub.Home_Team) AS GameOrder
FROM TBL_ALL_English_Results As t2
) AS LastFiveDates
ON t1.Date = LastFiveDates.Date
AND t1.Home_Team = LastFiveDates.Home_Team
WHERE LastFiveDates.GameOrder <= 5

虽然大多数数据库都可以运行此查询,但如果表结果高于 10,000,性能可能会有所不同,特别是在文件级数据库 MS Access 中,而不是服务器级 RDMS MySQL。

关于mysql - 根据日期和组返回最后 5 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38809747/

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