SQL, select, count et optimisation

SQL, select, count et optimisation - SQL/NoSQL - Programmation

Marsh Posté le 30-05-2011 à 13:49:02    

Bonjour,
 
J'ai un petit problème avec l'optimisation d'une requête ... le résultat que j'obtiens correspond bien à ce que je désire mais je pense qu'il y a un moyen plus rapide.
Donc en gros la structure de ma table: site;ref;timestamp. Et je fais un insert pour chaque ref qui se trouve sur le site avec le timestamp qui correspond.
 
Je souhaite afficher le nombre de fois ou site à eu plus petit timestamp et que count(ref) soit supérieur à 15 pour faire une sorte de classement enfet.
 
donc pour le moment je fais
 
1; select ref, count(ref) as cnt from records group by ref
      2; if cnt > 15
            3; select * from records where ref = ? ORDER BY timestamp LIMIT 1
            4; je place dans un tableau,
5;je tri le tableau et j'affiche
 
Des idée sur comment faire sa plus rapidement?

Reply

Marsh Posté le 30-05-2011 à 13:49:02   

Reply

Marsh Posté le 30-05-2011 à 16:29:48    

Code :
  1. SELECT *
  2. FROM records a
  3.    JOIN (SELECT ref, max(timestamp) maxTimestamp FROM records GROUP BY ref HAVING count(*) > 15) b ON b.ref = a.ref AND b.maxTimestamp = a.timestamp
  4. ORDER BY cequetuveux


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed