MYSQL : Récupération d'un tableau

Eric -  
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

8 réponses

  1. SangokuSSJ4 Messages postés 480 Statut Membre 47
     
    essaye les jointures du type "left join"
    0
    1. Eric
       
      je regarde ça, merci
      0
    2. Eric
       
      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
      0
  2. Eric
     
    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
    0
  3. SangokuSSJ4 Messages postés 480 Statut Membre 47
     
    pour récupèrer le résultat dans le ??? , je pense que ça doit ressembler à un tableau à dimension multiples, du genre Palier[2][1]...
    0
    1. Eric
       
      Le résultat final serait un tableau à une dimension du style
      Palier = array(12000, 8000, 3210, 987, 601);
      la dernière valeur correspond à la progression max
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Eric
     
    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
    ...
    0
  6. SangokuSSJ4 Messages postés 480 Statut Membre 47
     
    Bien joué :) Je garde cette méthode dans un coin ça pourrait m'être utile un jour :)
    0
  7. Eric
     
    En tout cas, merci pour m'avoir aidé ;)
    0
  8. SangokuSSJ4 Messages postés 480 Statut Membre 47
     
    Mais de rien :)
    0