Salut les geeks, c’est bien honteux que je fais appel à vous car je sèche devant une question de noob:
Imaginons une table Projets contenant, pour un projet donné, le numéro du département qui s’occupe du projet. Comment trouver le département qui s’occupe du plus petit nombre de projets (bref le département qui apparait le moins souvent dans la table Projets)?
Avec un select count() on pourra obtenir le nombre de projets pour chaque département, mais comment imbriquer ça proprement avec un select min? Si c’est au moins possible…
Merci de votre aide.
Mmhh ?
SELECT TOP 1 COUNT(numdep), numdep
FROM projets
GROUP BY numdep
ORDER BY COUNT(numdep) DESC
[quote=“Styx31, post:2, topic: 49294”]Mmhh ?
SELECT TOP 1 COUNT(numdep), numdep
FROM projets
GROUP BY numdep
ORDER BY COUNT(numdep) DESC
[/quote]
ou comme ca:
mais je suis pas sur que ce soit exactement ce qu’il demande. On peut avoir la structure de la table?
[quote=“azacreel2, post:3, topic: 49294”]ou comme ca:
Marche pas sous Sql Server ça : “Cannot perform an aggregate function on an expression containing an aggregate or a subquery.”
Après ca peut dépendre du SGBD, mais la bonne version sous sql server serait :
l’habitude d’oracle
Pis il a pas precise le SGBD.
Désolé de répondre si tard :crying:
Donc ici je travaille sous Oracle, j’aurais du le préciser avant. Ben aucune requête ci-dessus ne fonctionne
Oracle n’aime les min() dans un count() je crois.
Je vais partir sur une solution du style:
[codebox]SELECT Numdep FROM Projets Group By Numdep HAVING COUNT(Numdep)>=ALL(…);[/codebox]
Je vous tiens au courant 
euhh moi tres surpris, j’ai teste sur oracle 9.2.0.6 et ca fonctionne tres bien…
Je re-testerai demain, on tourne avec la version 10 je crois
2eme coup de pression Lupuss, ici aussi ca marche en v9. Ouais je sais t’es bien avancé maintenant.