为什么这个SQL字符串不起作用?

0 mysql sql oracle join

我必须得到所有job_titles和在那里工作的人的工资总和的清单......

我用这个得到了:

SELECT j.job_title, SUM(e.salary)
FROM jobs j LEFT JOIN employees e ON e.job_id = j.job_id
GROUP BY j.job_title;
Run Code Online (Sandbox Code Playgroud)

好的,但现在我得到同样的名单,但也考虑到城市......

它不起作用......:/

SELECT j.job_title, SUM(e.salary), d.department_id, l.city
FROM departments d LEFT JOIN employees e ON e.department_id = d.department_id LEFT JOIN locations l 
ON l.location_id = d.location_id LEFT JOIN jobs j ON e.job_id = j.job_id 
GROUP BY l.city;     
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

Joh*_*Woo 5

你还需要由子句组添加这些列:j.job_title,d.department_id,l.city

SELECT..
FROM...
GROUP BY j.job_title, d.department_id, l.city
Run Code Online (Sandbox Code Playgroud)

GROUP BY子句中必须包含非聚合列.