plusieurs count() sur une même table!

plusieurs count() sur une même table! - SQL/NoSQL - Programmation

Marsh Posté le 21-09-2008 à 13:08:07    

Bonjour,
 
J'ai une table "contents", qui contient un champs "type".  
 
Il y'a 4 types : cours, exercices, devoirs et examens.
 
Je voudrais pouvoir compter le nombre de contenus de chaque type en une seule requête.
 
J'ai trouvé quelques propositions ici et là, mais elles sont assez complexes.
 
Merci d'avance!
 
Adam

Reply

Marsh Posté le 21-09-2008 à 13:08:07   

Reply

Marsh Posté le 21-09-2008 à 13:55:36    

count(*), group by type:

Code :
  1. CREATE TABLE contents (
  2.       type TEXT NOT NULL
  3. );
  4.  
  5. INSERT INTO contents VALUES ("cours" );
  6. INSERT INTO contents VALUES ("exercices" );
  7. INSERT INTO contents VALUES ("exercices" );
  8. INSERT INTO contents VALUES ("devoirs" );
  9. INSERT INTO contents VALUES ("devoirs" );
  10. INSERT INTO contents VALUES ("devoirs" );
  11. INSERT INTO contents VALUES ("devoirs" );
  12. INSERT INTO contents VALUES ("examens" );
  13. INSERT INTO contents VALUES ("examens" );
  14. INSERT INTO contents VALUES ("examens" );
  15. INSERT INTO contents VALUES ("examens" );
  16. INSERT INTO contents VALUES ("exercices" );
  17. INSERT INTO contents VALUES ("exercices" );
  18. INSERT INTO contents VALUES ("exercices" );
  19. INSERT INTO contents VALUES ("devoirs" );
  20. INSERT INTO contents VALUES ("devoirs" );
  21. INSERT INTO contents VALUES ("devoirs" );
  22. INSERT INTO contents VALUES ("examens" );
  23. INSERT INTO contents VALUES ("examens" );
  24. INSERT INTO contents VALUES ("devoirs" );
  25. INSERT INTO contents VALUES ("exercices" );
  26. INSERT INTO contents VALUES ("exercices" );
  27. INSERT INTO contents VALUES ("devoirs" );
  28. INSERT INTO contents VALUES ("devoirs" );
  29. INSERT INTO contents VALUES ("devoirs" );
  30. INSERT INTO contents VALUES ("devoirs" );
  31. INSERT INTO contents VALUES ("examens" );
  32. INSERT INTO contents VALUES ("examens" );
  33.  
  34. SELECT type, count(*) FROM contents GROUP BY type;


=>

cours|1
devoirs|12
examens|8
exercices|7


Testé sous SQLite3, pas de raison que ça ne fonctionne pas avec les autres DBs.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 21-09-2008 à 15:18:34    

Merci Masklinn!  
ça fonctionne ;)
 
Adam

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed