我的数据包含100个英国足球队的统计数据。该表的属性为:

(Team Name, TeamTown, Status_Professional/Amateur, YearTeamFounded, ChairmanOfTeam, TeamRevenue, DateOfGames, PointsScoredByTeam).


让我向您展示项目中数百行中的两行:

(LiverpoolFC, Liverpool, Professional, 1892, Tom Werner, £100million, 2013-12-25, 5)
(LiverpoolFC, Liverpool, Professional, 1892, Tom Werner, £100million, 2013-04-12, 1)


这些只是我向您展示的与利物浦有关的两行,实际情况是其中有17行名称为“ Liverpool”。我的任务是确定(从17个行中)利物浦足球俱乐部在2013年上半场或2013年上半场是否获得了更多进球。我无法理解的是如何将两半分开。在SQL中,年份是“ DATE”,而不是“ INT”。那就是让我烦恼的。从我给您的简短示例中可以明显看出,利物浦在2013年下半年取得了更多进球。但是,您如何实际编写查询来显示这一点(请记住,我要处理17行,而不是两行) ?请任何人阐明一下?

最佳答案

这应该工作:

SELECT SUM(IF(DateOfGames <= '2013-06-30', PointsScoredByTeam, 0)) AS `first_half_points`,
    SUM(IF(DateOfGames > '2013-06-30', PointsScoredByTeam, 0)) AS `second_half_points`
FROM yourTable
WHERE `Team Name` = 'LiverpoolFC'
    AND DateOfGames >= '2013-01-01'
    AND DateOfGames < '2014-01-01'

关于mysql - SQL表-如何编写查询来确定团队在上半年或下半年得分更高,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20054900/

10-12 04:50