mysql - 本赛季出场球员的职业生涯平均值
问题描述
我试图列出球员在他们职业生涯中的平均水平,但只包括在 2018 年至少打过一场比赛的球员,但我的查询只是回归球员在 2018 年“只”打过,而不是所有球员的职业生涯平均水平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 年的结果。EXISTS
我添加到的子句WHERE
将查找任何在 2018 年参加过比赛的球员。
推荐阅读
- contentful - 无法在 Contentful 上添加 UI 扩展。当我运行 nopm run start 时,我在 ui_config 上收到 404 错误
- python - 在 Pandas 中获取 KeyError
- angular - Angular 8:根据选中的复选框显示/隐藏输入
- firebase - Firebase 未向设备中的电话号码发送 OTP
- c# - 在 Visual Studio 中以编程方式访问“peek”代码
- python-3.x - 将数据附加到正在运行的事件循环
- firebase - 如何获取我的应用在 Firebase 上的有效安装总数?
- ios - Swift 错误类型服务器响应来自 REST API 的错误输入
- python - tesseract 在传递图像时返回空字符串。我已经从更大的图像中裁剪了文本
- python-3.x - 云函数属性错误:从云存储读取 json 文件时,'bytes' 对象没有属性 'get'