0

すべての 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;     

それはなぜでしょうか?

4

4 に答える 4

5

また、次の列を group by 句に追加する必要があります: j.job_titled.department_idl.city

SELECT..
FROM...
GROUP BY j.job_title, d.department_id, l.city

非集計列GROUP BYを句に含める必要があります。

于 2012-12-12T23:12:09.063 に答える
0

あなたはl.cityによってのみグループ化されていますが、selectステートメントではj.job_title、d.department_idを使用しているため、これらの値を取得するには使用する必要があります

group by job_title, department_id, city
于 2012-12-12T23:14:39.837 に答える
0

department_id と job_title でグループ化する必要があると思います:

GROUP BY j.job_title, d.department_id, l.city;
于 2012-12-12T23:11:43.383 に答える
0

集計されていない列でグループ化する必要があります。

...
group by job_title, department_id, city

次の方法で、グループ内の列位置を使用することもできます。

group by 1, 3, 4
于 2012-12-12T23:12:07.327 に答える