mysql - 为每个团队选择前 x 条记录

标签 mysql sql

我如何选择每个团队(主场和客场)的 x 个最近记录?

因此,下面为我提供了斯旺西最近的主场和客场比赛,我如何获得所有球队的数据?

    select d.date, d.hometeam, d.awayteam 
    from dump d
    where 
    d.hometeam = 'Swansea' 
    or d.awayteam ='Swansea'
    order by STR_TO_DATE(date, '%d/%m/%Y') desc limit 6

以我拥有的数据为例。我使用的是 football-data.co.uk 提供的 CSV 数据:http://www.football-data.co.uk/mmz4281/1415/E0.csv

我使用的是 MySQL,但是如果有适合此目的的函数或存储过程,我可以使用 SQL Server。

编辑:预期输出

X      | Date    | Home Team | Away Team
----------------------------------------
Swansea| 23/03/15|Swansea    |Arsenal
----------------------------------------
Swansea| 14/03/15|Man City   |Swansea
----------------------------------------
Man Utd| 14/03/15|Man Utd    |Man City
----------------------------------------
Man Utd| 14/03/15|Man Utd    |Liverpool

如果您对如何更好地呈现它有任何建议,我愿意接受建议。

左边是有问题的团队,如上表所示,每个团队 2 个,我试图让每个团队 6 个。

最佳答案

你只需要 GROUP BY 团队和日期:

SELECT d.team, d.date, d.hometeam, d.awayteam 
FROM dump d
GROUP BY team, date
ORDER BY STR_TO_DATE(date, '%d/%m/%Y');

关于mysql - 为每个团队选择前 x 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29219515/

相关文章:

php - 如何扩展从 MySQL 导入的类别列表

MYSQL查询错误

mysql - 在 SQL 中将百分比添加到数字

mysql - 根据 NULL 字段从表中选择公司 ID 之间的公共(public)列?

sql - 检查 MySQL 中的约束

mysql - 使用分组最大 MYSQL 更新表?

sql - 如何将多个 SQL 查询求和在一起?

mysql - 检查值是否在数据库中存在两次以上

mysql group by 2列的唯一组合

mysql - 建立数据库连接时出错: XAMPP WordPress