Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
944 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  optimisation de requéte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

optimisation de requéte

n°1724875
danidan75
Posté le 26-04-2008 à 11:54:07  profilanswer
 

Bonjour.
 
Travaillant actuellement sur le développement de la partie statistique d'un back-office, je n'arrive pas à trouver la requête miracle qui m'évitera d'avoir à procéder par étapes.
 
But recherché: savoir, parmi les clients qui ont commandés sur un mois donné, ceux qui en sont à leur première commande, ceux qui en sont à leur 2e, à leur 3e, à leur 4e ou à 5 et +.
 
Actuellement, je procéde ainsi
 
SELECT a.id_client, COUNT( DISTINCT b.id_commande ) AS nb_commandes
FROM commande a
INNER JOIN commande b ON ( a.id_client = b.id_client
AND b.date_commande < "2008-04-01 00:00:00" )
WHERE a.date_commande
BETWEEN "2008-03-01 00:00:00"
AND "2008-03-31 23:59:59"
GROUP BY a.id_client
HAVING nb_commandes=1
 
pour connaitre les clients ayant commandés en mars qui n'en sont qu'à leur première commande, puis je regarde le nombre de réponses retournées (j'ai bien essayé d'envelopper la requéte dans un SELECT COUNT() général, mais j'ai un message d'erreur et passe donc par l'instruction php mysql_num_rows).
 
Comme je veux 5 nombres, je répéte l'opération 5 fois, en changeant chaque fois la condition de mon
 
HAVING nb_commandes
 
Y'aurait-il moyen d'optimiser tout ça pour obtenir le résultat souhaité en une seule et unique requéte?
 
Merci d'avance.
 
P.S.: le serveur est en MySQL 4.0.2, donc sous-requétes impossibles.

mood
Publicité
Posté le 26-04-2008 à 11:54:07  profilanswer
 

n°1724889
sielfried
Posté le 26-04-2008 à 12:29:06  profilanswer
 

HAVING nb_commandes >= 2  
ORDER BY nb_commandes
 
?


Message édité par sielfried le 26-04-2008 à 12:36:22

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  optimisation de requéte

 

Sujets relatifs
Probleme et optimisation de requete[SQL] Optimisation de requete
[SQL] Optimisation d'une réquète récursive[SQL] Optimisation de requête "regroupement X-en-1" (tri ?)
Optimisation requête (Mysql)MySQL - Optimisation d'une requête avec plusieurs JOIN
[Oracle ASM] Problème d'optimisation de requête suite à migration[Oracle] Optimisation d'une requête de mise à jour
[ORA] - Optimisation d'une requeteoptimisation de requete
Plus de sujets relatifs à : optimisation de requéte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR