Je suis nouveau sur sql, toute aide est appréciée.
J'ai deux tables, employees
et jobs
. employees
contient une variable job_id
(plusieurs employés peuvent avoir le même ID_travail). jobs
contient des variables job_id
et job_title
(un job_ID correspond à un job_title, c'est le schéma hr d'Oracle si vous êtes intéressé).
Je veux que la requête renvoie: le job_title, job_ID et le nombre de personnes qui ont le même job_Id.
J'ai essayé le code suivant:
select j.job_title, e.job_ID, count(e.job_ID)
from employees e, jobs j
where e.job_id=j.job_id
group by e.job_Id
le message d'erreur est:
ORA-00979: pas une expression GROUP BY 00979. 00000 - "pas une expression GROUP BY" * Cause:
*Action:
Erreur à la ligne: 83 Colonne: 8
Pouvez-vous m'aider à résoudre ce problème?
Le message d'erreur est un peu trompeur. Lorsque vous select
un tas de champs et un agrégat, vous devez group by
tous les champs que vous select
et uniquement les champs que vous select
. Votre requête doit donc être:
select j.job_title, e.job_ID, count(e.job_ID)
from employees e, jobs j
where e.job_id=j.job_id
group by e.job_Id, j.job_title