MYSQL : Récupération d'un tableau
Eric
-
SangokuSSJ4 Messages postés 480 Statut Membre -
SangokuSSJ4 Messages postés 480 Statut Membre -
Bonjour,
je dispose d'une table sql avec un champ 'membres' et un champ 'progression'
je cherche à obtenir un tableau contenant le nombre de membres dont la progression est :
>= 100,
>= 200,
>= 300,
...,
= progression maximale
et si c'est possible, en une seule requête sql
il y a-t-il un mot clé qui permette de faire cela ?
j'ai essayé plein de choses, mais je n'arrive jamais à réccupérer ce tableau
merci à vous
cordialement
je dispose d'une table sql avec un champ 'membres' et un champ 'progression'
je cherche à obtenir un tableau contenant le nombre de membres dont la progression est :
>= 100,
>= 200,
>= 300,
...,
= progression maximale
et si c'est possible, en une seule requête sql
il y a-t-il un mot clé qui permette de faire cela ?
j'ai essayé plein de choses, mais je n'arrive jamais à réccupérer ce tableau
merci à vous
cordialement
8 réponses
-
-
-
je n'ai qu'une seule table, le but est de savoir combien ont dépassé la progression par pas de 100 et combien sont au maximum
le résultat serait de la forme :
>= 100 => 12000 // nombre total de membres ayant leur progression >= 100
>= 200 => 8000
>= 300 => 3210
>= 400 => 987
= 412 => 601 // nombre ayant la progression maximale
-
-
Je viens de trouver ça, essaye voir si ça fonctionne ?
https://forums.devx.com/showthread.php?19168-multiple-count-statements-in-1-sql-query -
SELECT '?????' as Palier FROM 'membres' WHERE 'progression' IN ((SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 100),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 200),(SELECT COUNT('progression') FROM 'membres'WHERE 'progression' > 300),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 400),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 500),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 600),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 700),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 800),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 900),(SELECT COUNT('progression') FROM 'membres'WHERE 'progression' <=> (SELECT MAX('progression') FROM 'membres')));
La requête serait de ce style, mais si possible en automatisant les 100, 200, 300, ...
et je ne sais pas comment récupérer le résultat dans le ?????
je regarde ton lien -
pour récupèrer le résultat dans le ??? , je pense que ça doit ressembler à un tableau à dimension multiples, du genre Palier[2][1]...
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bon, j'ai trouvé quyelque chose qui me convient :
SELECT CONCAT_WS(",",(SELECT COUNT('progression') FROM 'membres'WHERE 'progression' <=> (SELECT MAX('progression') FROM 'membres')),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 100),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 200),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 300),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 400),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 500),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 600),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 700),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 800),(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > 900)) AS Palier
tous les
"(SELECT COUNT('progression') FROM 'membres' WHERE 'progression' > ".$i."00)"
seront dans une boucle de fabrication de la requête
un explode me donnera mon tableau
Palier[0] corespond au max
Palier[1] au >=100
Palier[2] au >=200
... -
Bien joué :) Je garde cette méthode dans un coin ça pourrait m'être utile un jour :)
-
-