MYSQL : Récupération d'un tableau

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. essaye les jointures du type "left join"
    0
    1. je regarde ça, merci
      0
    2. 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. 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
    1. 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. 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
    2. 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
      1. Bien joué :) Je garde cette méthode dans un coin ça pourrait m'être utile un jour :)
        0
        1. En tout cas, merci pour m'avoir aidé ;)
          0