【发布时间】:2019-09-13 20:30:52
【问题描述】:
这是我的第一篇文章。我是 SQL 新手。我有以下代码,我添加了MAX,这样我就不会收到错误:
必须聚合或在 GROUP BY 子句中
最后,我想GROUP BYplayerID 只用 AB,HRs,按玩家 (playerID) 总结。我怎样才能解决这个问题?如何避免使用MAX(或任何聚合)函数?我还能提供什么信息?
代码如下:
SELECT
MAX(teamID) AS teamID,
MAX(People.playerID) AS playerID,
MAX(People.nameFirst) AS nameFirst,
MAX(People.nameLast) AS nameLast,
MAX(CONCAT(People.nameFirst, ' ', People.nameLast)) AS 'Full Name',
MAX(CONCAT(People.birthCity, ', ', People.birthState, ', ', People.birthCountry)) AS 'Place of Birth',
SUM(Batting.AB) AS AB,
SUM(Batting.H) AS H,
SUM(Batting."2B") AS "2B",
SUM(Batting."3B") AS "3B",
SUM(Batting.HR) AS HR,
SUM(Batting.BB) AS BB,
SUM(Batting.HBP) AS HBP
FROM
People
JOIN Batting ON
Batting.playerID = People.playerID
WHERE
teamID = 'NYA' AND
nameFirst IS NOT NULL
GROUP BY
People.playerID
ORDER BY
'Full Name' ASC
提前致谢。
【问题讨论】:
-
欢迎来到 Stack Overflow!从查询和解释中很难推断出您想要什么。为了使您的问题更容易理解,您需要共享表
People和Batting的一些样本数据记录,以及相应的预期输出。 -
另外,您能否用您正在使用的 RDBMS 标记您的问题:mysql、oracle、sql-server...?
-
当前查询有什么问题?
-
查询本身没有问题,我的问题是我真的需要在没有聚合的列名前面添加 MAX 吗?
标签: sql sql-server group-by