【发布时间】:2014-07-09 03:25:14
【问题描述】:
我有一张这样的桌子。
home team | away team | attendance | home or away|
SD | WP | SD OVAL | 4000 | H |
WP | SD | SD OVAL | 4000 | A |
我希望能够生成一个这样显示的表格
Team | Home Total | Home Average | Away Total | Away Average | Total | Average |
SD | 4000 | 4000 | 0 | 0 | 4000 | 4000 |
WP | 0 | 0 | 4000 | 4000 | 4000 | 4000 |
我尝试过连接和联合,虽然 UNION 给了我最好的结果,虽然结果只在三列中返回
Team, HomeAttendance, AveHomeAttendance
这是我的查询(我还是 MYSQL 的新手)
SELECT Team,
SUM(Attendance) AS HomeAttendance,
ROUND(AVG(Attendance),0) AS AveHomeAttendance
FROM MatchDetails
WHERE Season = 2014
AND HA = 'H'
GROUP BY TEAM
UNION
SELECT Team,
SUM(Attendance) AS AwayAttendance,
ROUND(AVG(Attendance),0) AS AveAwayAttendance
FROM MatchDetails
WHERE Season = 2014
AND HA = 'A'
GROUP BY TEAM
UNION
SELECT Team,
SUM(Attendance) AS TotalAttendance,
ROUND(AVG(Attendance),0) AS AveTotalAttendance
FROM MatchDetails
WHERE Season = 2014
GROUP BY TEAM
【问题讨论】:
-
home or away列中的内容是什么?您在每条记录中都列出了两支球队,那么这个字段是什么意思? -
该表的目的是列出每个球队在一个赛季中的总上座率和平均上座率。表格中的主场或客场列填充有“H”表示主场比赛,“A”表示客场比赛。
-
但是上座率真的只与主队有关吗?我的意思是总是只有一个主队,那么为什么要主队或客队呢?这到底是什么意思?
-
第一个查询是计算每支球队的主场总上座率和平均主场上座率,第二个查询每支球队的客场总上座率和平均数,第三个查询每支球队的总上座率和平均上座率。
-
但是你怎么知道在主客场列中提到了哪支球队?根据您感兴趣的团队,该值可能会发生变化。我要说的是,我认为您将自己与错误的架构混淆了。