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.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
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