Aide MySQL pour regroupement par intervalles
5 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Aide MySQL pour regroupement par intervalles
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
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
Bourrinons !
A tester et à vérifier, car j'ai un gros doute ...
- Code: Tout sélectionner
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 ...
Merci Bh@Mp0,
J'ai donné les intervalles pour exemple
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.
J'ai donné les intervalles pour exemple
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.
Euh bah non ... faut surtout que tu construises automatiquement la requête à partir, par exemple, d'un tableau où tu donnes les limites.
Genre :
Genre :
- Code: Tout sélectionner
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 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Gestion des langues et des sessions en PHP / MySQL
- Le secret des doubles-résultats
- Passage à l'heure d'été/hiver sur un forum phpBB
- GoogleStats : analyse temps réel des visites de Google sur votre site
- Keyword Search Engine : le choix des bons mots-clés
- Sortie officielle de GoogleStats v2.0 !
- Une théorie sur la Sandbox de Google
- AdSense Tracking : statistiques détaillées sur les clics AdSense
- Le WRInaute du moment
- Ecrire un sitemap pour Google News
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités





le forum