Plusieurs Count et Group By sur une table - SQL/NoSQL - Programmation
Marsh Posté le 11-07-2008 à 16:17:36
selon ton sgbd, la requête ressemblera plus ou moins à ça :
select count(if one = 145 then 1 else 0 end) one, count(if two = 145 then 1 else 0 end) two, count(if three = 145 then 1 else 0 end) three
from tatable
Marsh Posté le 11-07-2008 à 17:05:52
sum au lieu de count non?
Marsh Posté le 11-07-2008 à 20:52:15
Merci pour les réponses,
En fait c'est pour un site php, je viens d'essayer sous phpmyadmin et ca marche pas.
Si je fais
SELECT Count(one) AS un FROM MaTable WHERE one = 145
J'ai bien 2 qui s'affiche.
Il me faudrai la même chose sauf sur les 3 colonne one two three
Au pire je peux trouver un moyen pour faire 3 requêtes (1 par colonne) mais c'est sans doute mieux si ca pouvait se faire en une.
Marsh Posté le 11-07-2008 à 21:58:29
ben tu dois adapter la syntaxe "if then else end" à mysql. certainement à coup de "case one when 145 then 1 else 0 end"
Marsh Posté le 11-07-2008 à 15:10:27
Salut,
Sur un site j'ai besoin de faire une requète dans une seule table.
Table MaTable
Colonne one, two, three
one two three
145 548 632
423 145 846
145 758 214
218 805 145
Je voudrai pouvoir compter le nombre de fois ou 145 est dans la colonne one, dans la colonne two et la colonne three et affcher les résultats du genre
one two three
2 1 1
Pour le moment j'ai fais ca :
SELECT *, Count(one) AS un, Count(two) AS deux, Count(three) AS trois FROM MaTable WHERE one = 145 OR two = 145 OR three = 145 GROUP BY one AND two AND three
Seul problème, ca m'affiche :
4
au lieu de
2 1 1
Je sais pas comment distinguer les group by pour qu'il m'affiche les résultats séparé au lieu de me grouper le tout.
Merci de votre aide