繁体   English   中英

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

[英]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_titled.department_idl.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM