[英]Why won't this SQL string work?
我必须获取所有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;
好的,但是现在我必须得到相同的列表,但还要考虑城市...
它不起作用...:/
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;
为什么会这样呢?
您还需要在group by子句上添加以下列: j.job_title
, d.department_id
, l.city
SELECT..
FROM...
GROUP BY j.job_title, d.department_id, l.city
非聚集列必须包含在GROUP BY
子句中。
我认为您也只需按Department_id和job_title进行分组:
GROUP BY j.job_title, d.department_id, l.city;
您需要按未汇总的列进行分组;
...
group by job_title, department_id, city
您还可以按以下方式在组中使用列位置:
group by 1, 3, 4
您仅按l.city分组,但在select语句中使用的是j.job_title,d.department_id,因此,为了获取这些值,您必须使用
group by job_title, department_id, city
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.