SELECT R.CALL,
P.NAME,
R.PID,
TIMESTAMPDIFF(4, CHAR(TIMESTAMP(M.ENDTIME) - TIMESTAMP(M.START))) AS MINUTES
FROM ROSTER R, PLAYER_ON P, MATCH M
WHERE R.CALL = P.CALL
AND R.PID = P.PID
AND M.START = R.START
ORDER BY R.CALL ASC, P.NAME ASC
上面是我的查询,我成功地从数据库中获取了所需的列。SQL查询如何在表中按名称分组
但是我还有一步要走。 用于查询的样本输出是这样的: Output
我的问题是:我怎么通过名称总结总分钟数组,例如,爱德华·埃利斯将与总分钟出现在输出中只有一次573 + 4933 。
这里是我的尝试:
SELECT CALL,
NAME,
PID,
SUM(MINUTES)
FROM (
SELECT R.CALL,
P.NAME,
R.PID,
TIMESTAMPDIFF(4, CHAR(TIMESTAMP(M.ENDTIME) - TIMESTAMP(M.START))) AS MINUTES
FROM ROSTER R, PLAYER_ON P, MATCH M
WHERE R.CALL = P.CALL
AND R.PID = P.PID
AND M.START = R.START)
GROUP BY NAME
但有一个错误说:
SQL0119N的表达式开始 “PID” 在SELECT子句, HAVING子句或ORDER BY指定子句未在GROUP BY子句或 中指定,它位于SELECT子句,HAVING子句或ORDER BY子句中,其列 函数并且没有指定GROUP BY子句。 SQLSTATE = 42803
有人可以帮忙吗?
您应该用正在使用的数据库标记问题。 –