1

我有一个 MySQL 数据库,可以在其中添加电视上播放的足球比赛。每个团队都表示为一个数字。我真的不知道如何进行查询以列出一支球队在电视上播出的次数,无论他们是在主场还是客场比赛。

我正在尝试列出在电视上播放的前 20 名球队名单。我有团队 ID 的两列分别称为“hjemmehold”和“udehold”(它是丹麦语 :))。

任何人都可以在这里帮助我吗?

4

3 回答 3

0
SELECT Team, Count(*)
FROM (select Away as Team from Games union all select Home as Team from Games) t
GROUP BY Team
ORDER BY Count(*) Desc
LIMIT 20
于 2012-11-13T21:25:32.973 回答
0
SELECT SUM(Away)+SUM(Home) AS NumGames
FROM Games
WHERE Team=@Team

显然这是伪代码,但是把正确的表/字段/参数放进去,你应该很高兴。

对于所有 20 支球队:

SELECT TOP 20 Team, SUM(Away)+SUM(Home) AS NumGames
FROM Games
ORDER BY SUM(Away)+SUM(Home) desc
于 2012-11-13T20:54:49.893 回答
0

t.his 应该可以给你出战过的前 20 支球队。这还可以让您找到哪些球队还没有参加过比赛(如果您删除前 20 名部分)。

SELECT TOP 20
    team_id, 
    (SELECT COUNT(1) FROM GAMES WHERE HOME = t.team_id) + (SELECT COUNT(1) FROM GAMES WHERE AWAY = team_id) AS team_count
FROM TEAMS T 
ORDER BY team_count DESC
于 2012-11-13T21:00:12.643 回答