本赛季出场球员的职业生涯平均水平
Career averages for players that have played in current season
我试图列出球员在他们职业生涯中的平均水平,但只包括在 2018 年至少打过一场比赛的球员,但我的查询只是返回在 2018 年打过 'only' 的球员,而不是所有在 2018 年至少打过一场比赛的球员的职业生涯平均水平。
SELECT PlayerID
, Surname
, AKA
, COUNT(*) AS Played
, ROUND(AVG(Kicks),1) AS K
, ROUND(AVG(Handballs),1) AS HB
, ROUND(AVG(Marks),1) AS M
, Season
FROM `PlayerDetails`
WHERE Team = 'Team A'
GROUP
BY PlayerID
HAVING Season = 2018
ORDER
BY Surname ASC
您需要删除 HAVING
子句并添加到 WHERE
子句:
SELECT PlayerID, Surname,AKA, COUNT(*) AS Played, ROUND(AVG(Kicks),1) AS K, ROUND(AVG(Handballs),1) AS HB, ROUND(AVG(Marks),1) AS M, Season
FROM `PlayerDetails` p1
WHERE Team = 'Team A'
AND EXISTS (SELECT * FROM `PlayerDetails` p2 WHERE p2.playerID = p1.playerID AND Season = 2018)
GROUP BY PlayerID
ORDER BY Surname ASC
您所拥有的 HAVING
子句 - 正如您所发现的那样 - 将查询仅限于 2018 年的结果。我添加到 WHERE
的 EXISTS
子句将找到任何玩家谁玩过2018.
我试图列出球员在他们职业生涯中的平均水平,但只包括在 2018 年至少打过一场比赛的球员,但我的查询只是返回在 2018 年打过 'only' 的球员,而不是所有在 2018 年至少打过一场比赛的球员的职业生涯平均水平。
SELECT PlayerID
, Surname
, AKA
, COUNT(*) AS Played
, ROUND(AVG(Kicks),1) AS K
, ROUND(AVG(Handballs),1) AS HB
, ROUND(AVG(Marks),1) AS M
, Season
FROM `PlayerDetails`
WHERE Team = 'Team A'
GROUP
BY PlayerID
HAVING Season = 2018
ORDER
BY Surname ASC
您需要删除 HAVING
子句并添加到 WHERE
子句:
SELECT PlayerID, Surname,AKA, COUNT(*) AS Played, ROUND(AVG(Kicks),1) AS K, ROUND(AVG(Handballs),1) AS HB, ROUND(AVG(Marks),1) AS M, Season
FROM `PlayerDetails` p1
WHERE Team = 'Team A'
AND EXISTS (SELECT * FROM `PlayerDetails` p2 WHERE p2.playerID = p1.playerID AND Season = 2018)
GROUP BY PlayerID
ORDER BY Surname ASC
您所拥有的 HAVING
子句 - 正如您所发现的那样 - 将查询仅限于 2018 年的结果。我添加到 WHERE
的 EXISTS
子句将找到任何玩家谁玩过2018.