Aide MySQL pour regroupement par intervalles

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par OJAL, 23 Juin 2007.

  1. OJAL
    OJAL WRInaute impliqué
    Inscrit:
    10 Avril 2003
    Messages:
    819
    J'aime reçus:
    0
    Bonjour,

    Je souhaite trouver la requête SQL qui me permettra d'extraire le nombre d'annonces par intervalles de surfaces avec par exemple des intervalles de surfaces de 0 à 40 puis 40 à 70 puis tout ce qui est sup à 70 par exemple...
    Je sais le faire en autant de requêtes que d'intervalles, mais j'aurais besoin de le faire en une seule requête.

    Merci par avance pour votre aide ;-)
     
  2. Bh@Mp0
    Bh@Mp0 WRInaute discret
    Inscrit:
    18 Janvier 2005
    Messages:
    200
    J'aime reçus:
    0
    Bourrinons !

    Code:
    SELECT COUNT(DISTINCT t1.id) AS countGroup1, COUNT(DISTINCT t2.id) AS countGroup2, COUNT(DISTINCT t3.id) AS countGroup3
    FROM myTable t1
    LEFT JOIN myTable t2
    LEFT JOIN myTable t3
    WHERE t1.surface BETWEEN 0 AND 40
    AND t2.surface BETWEEN 40 AND 70
    AND t3.surface > 70
    A tester et à vérifier, car j'ai un gros doute ...
     
  3. OJAL
    OJAL WRInaute impliqué
    Inscrit:
    10 Avril 2003
    Messages:
    819
    J'aime reçus:
    0
    Merci Bh@Mp0,

    J'ai donné les intervalles pour exemple :oops: En fait j'aurai besoin de beaucoup plus d'intervalles...
    Il faut peut être simplement que je fasse une requête par intervalle sans plus me casser la tête avec des between... 10 intervalles, 10 requêtes.
     
  4. Bh@Mp0
    Bh@Mp0 WRInaute discret
    Inscrit:
    18 Janvier 2005
    Messages:
    200
    J'aime reçus:
    0
    Euh bah non ... faut surtout que tu construises automatiquement la requête à partir, par exemple, d'un tableau où tu donnes les limites.

    Genre :
    Code:
    function buildRequest($myLimits) {
    
         $selects = "";
         $tables = "";
         $wheres = "";
    
         for($i=0;$i<count($myLimits);$i++) {
              $selects .= "COUNT(DISTINCT t".$i.".id) AS countGroup".$i.", ";
              $tables .= "myTable t".$i." LEFT JOIN ";
              if($myLimits[$i][0] == null) $wheres .= "t".$i.".surface < ".$myLimits[$i][1]." AND ";
              elseif($myLimits[$i][1] == null) $wheres .= "t".$i.".surface > ".$myLimits[$i][0]." AND ";
              else $wheres .= "t".$i." BETWEEN ".$myLimits[$i][0]." AND ".$myLimits[$i][1]." AND ";
         }
    
         // on vire le dernier ", "
         $selects = substr($selects, 0, strlen($selects)-2);
         // on vire le dernier " LEFT JOIN "
         $tables = substr($tables, 0, strlen($tables)-11);
         // on vire le dernier " AND "
         $wheres = substr($wheres, 0, strlen($wheres)-5);
    
         return "SELECT ".$selects." FROM ".$tables." WHERE ".$wheres;
    }
    
    // maintenant on construit nos limits
    $limits = array(
         array(null,40),
         array(40,70),
         array(70,null),
         array(80,81),
         array(1,100)
    );
    // et on appelle la fonction qui crée la requête
    $request = buildRequest($limits);
    
    // on va l'afficher pour l'instant, afin de tester
    print_r($request);
     
  5. OJAL
    OJAL WRInaute impliqué
    Inscrit:
    10 Avril 2003
    Messages:
    819
    J'aime reçus:
    0
    Merci ;-)

    Je vais essayer de partir de cette trame.
    Fabuleux les aides sur WRI ;-)
     
Chargement...
Similar Threads - Aide MySQL regroupement Forum Date
Aide pour Mysql et automatisation Développement d'un site Web ou d'une appli mobile 12 Octobre 2015
[FAIL] MYSQL NE VEUT PLUS DEMARRER! [AIDEZ MOI] Administration d'un site Web 11 Juillet 2015
Besoin d'aide concernant les indexes - Mysql Développement d'un site Web ou d'une appli mobile 24 Juillet 2014
[MySQL] Requête SELECT et INSERT entre 3 tables liées+Aide Développement d'un site Web ou d'une appli mobile 30 Avril 2014
Requête MySQL besoin d'aide Développement d'un site Web ou d'une appli mobile 15 Septembre 2011
Aide requête MySQL avec count Développement d'un site Web ou d'une appli mobile 25 Mars 2011
Regrouper des expressions qui se ressemblent, en PHP ou MySQL, à l'aide Développement d'un site Web ou d'une appli mobile 6 Mars 2011
aide requete MYSQL Développement d'un site Web ou d'une appli mobile 22 Octobre 2009
A l'aide Error Mysql Développement d'un site Web ou d'une appli mobile 19 Octobre 2009
Reprise gestion de site et aide formulaire insertion mysql Administration d'un site Web 12 Octobre 2009
Aide php/mysql requête svp Développement d'un site Web ou d'une appli mobile 9 Août 2009
Besoin d'aide pour une requête MySQL jointe + affichage (hiérarchisation de données) Développement d'un site Web ou d'une appli mobile 20 Juillet 2009
[PHP/MYSQL] Besoin d'aide pour la simplification d'une requete Développement d'un site Web ou d'une appli mobile 9 Juillet 2009
[MYSQL] Lier des lignes d'une table à l'aide d'une 2eme tabl Développement d'un site Web ou d'une appli mobile 10 Juillet 2008
Requete Mysql AIDE svp ! Développement d'un site Web ou d'une appli mobile 22 Février 2008
[R]Un problème basique sur MYSQL, quelqu'un peut-il m'aider. Développement d'un site Web ou d'une appli mobile 16 Janvier 2008
Aide avec une requette Mysql Développement d'un site Web ou d'une appli mobile 16 Janvier 2008
Aide pour une requête MySQL Développement d'un site Web ou d'une appli mobile 23 Mai 2007
Besoin d'aide : intégration lien d'une requete mysql Développement d'un site Web ou d'une appli mobile 6 Mai 2007
Aide pour optimiser l'écriture d'une requete PHP/MYSQL Développement d'un site Web ou d'une appli mobile 1 Mars 2007