Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/03/2011, 21h55   #1
Invité régulier
 
Homme
Étudiant
Inscription : mars 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 19
Points : 5
Points : 5
Par défaut Énumération + COUNT + GROUP BY!

Bonjour,

Mais que faire si en veut par exemple citer tous les employé triés par le numéro de département en utilisant juste le Group By ?

Dans le même sens trouver les noms et le nombre des employé de chaque département ?

Merci par avance.
larbiDida est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 22h01   #2
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
ORDER BY couplé à DISTINCT si besoin
Citation:
le nombre des employé de chaque département
Là le GROUP BY aura un sens car il y aura utilisation de la fonction COUNT.
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/03/2011, 22h33   #3
Invité régulier
 
Homme
Étudiant
Inscription : mars 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 19
Points : 5
Points : 5
MERCI POUR LA RAPIDITÉ
mais mon problème c'est ce citer aussi les noms !! le count(*) avec un group by ça regroupe tout mais je veux lister comme même les noms
Dans le même sens citer les NOMS des employé des département ayant plus de 4 employé ??? ça fait plus de 6heures que j'essaye de faire ça mais sans succès merci de m'aider ...
larbiDida est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 22h35   #4
Invité régulier
 
Homme
Étudiant
Inscription : mars 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 19
Points : 5
Points : 5
Pouvez vous m'expliquer comment utiliser ORDER by couplé avec DISTINCT SVP je suis débutante
larbiDida est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 23h14   #5
Invité régulier
 
Homme
Étudiant
Inscription : mars 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 19
Points : 5
Points : 5
Par défaut Émunération + COUNT + GROUP BY!

J'ai une table EMP(no_emp, nom_emp, no_departement) pour désigné les employés.
Il me faut une requête SQL qui retourne les NOMS des employés des départements ayant plus de 4 employés groupés par le numéro de département??
Le problème est que


Code :
1
2
3
SELECT nom_emp, no_departement, COUNT(*) 
FROM EMP GROUP BY no_departement 
HAVING COUNT(*)>2
ne me donne qu'un seul nom par département !!!!1
larbiDida est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 00h46   #6
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 445
Points : 10 445
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Être débutant ne vous empêchera pas de lire les tutoriels - justement à destination des débutants :
http://sql.developpez.com/
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 23/03/2011, 10h22   #7
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
Dans ce cas GROUP BY ne peut pas marcher, si votre SGBD connaît les focnctions analytiques :
Code :
1
2
SELECT nom_emp, no_departement, COUNT(*) over(partition BY no_departement) AS nb
FROM EMP
Sinon recalculer le nombre pour chaque ligne :
Code :
1
2
SELECT e1.nom_emp, e1.no_departement, (SELECT COUNT(*) FROM emp e2 WHERE e2.no_departement = e1.no_departement) AS nb
FROM EMP e1
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/03/2011, 11h51   #8
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
Citation:
J'ai une table EMP(no_emp, nom_emp, no_departement) pour désigné les employés.
Il me faut une requête SQL qui retourne les NOMS des employés des départements ayant plus de 4 employés groupés par le numéro de département??
Quels sont les départements ayant plus de 4 employés ?
Code :
1
2
3
4
SELECT no_departement
FROM EMP
GROUP BY no_departement
HAVING COUNT(*) > 4
Quels sont les employés travaillant dans ces départements ?
Code :
1
2
3
4
5
6
7
8
9
10
SELECT e.no_departement, e.nom_emp
FROM EMP e
INNER JOIN
(
    SELECT no_departement
    FROM EMP
    GROUP BY no_departement
    HAVING COUNT(*) > 4
) tmp ON tmp.no_departement = e.no_departement
ORDER BY e.no_departement, e.nom_emp
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/03/2011, 13h29   #9
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
Ah oui effectivement je n'avais pas lu la question
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 16h37   #10
Invité régulier
 
Homme
Étudiant
Inscription : mars 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 19
Points : 5
Points : 5
WOW WOW WOW Cinephil ça marcheeeeeee CHAPEAU CHAPEAU monsieur merci beaucoup j'aimerai vraiment être comme vous, j'ai passé toute la journée d'hier à chercher la solution, et je n'est jamais pensé à une intersection entre la table des départements ayant +de 4 employé et la table des employés !!! merci aussi aux autres membres qui m'on répondu c'est vraiment sympa de votre part ...
larbiDida est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 16h38   #11
Invité régulier
 
Homme
Étudiant
Inscription : mars 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 19
Points : 5
Points : 5
merci skuatamad
larbiDida est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h38.


 
 
 
 
Partenaires

Hébergement Web