Bonjour,
Je voudrais récupérer les 5 dates les plus récentes d'une table. Je m'explique : je voudrais faire ça 5 fois.
SELECT MAXI(DATE) FROM DATE
Merci de m'aider
Bonjour,
Je voudrais récupérer les 5 dates les plus récentes d'une table. Je m'explique : je voudrais faire ça 5 fois.
SELECT MAXI(DATE) FROM DATE
Merci de m'aider
Attention :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT a.date FROM Date a, Date b WHERE a.date <= b.date GROUP BY a.date HAVING COUNT(*) <= 5
Le code ci-dessus ne fonctionne bien que si les dates sont toutes différentes (ce qui est plausible si tes dates sont des timestamps).
Ce code n'est pas très performant : si tu connais une borne pour la 5 ième date c'est mieux et tu ajoutes
Evite de donner le nom "date" à des colonnes ou a des tables, date risquant d'être un mot clé, mais tu n'as peut-être écris cela qu'à titre d'exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part AND a.date > Borne
(Sur une idée de Joe Celko)
J'affirme péremptoirement que toute affirmation péremptoire est fausse
5ième élément : barde-prince des figures de style, duc de la synecdoque
Je ne réponds jamais aux questions techniques par MP
Si les dates sont identiques, tu peux essayer :
Si tu connais la borne, il faut l'ajouter aux select intérieurs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT a.date FROM (SELECT DISTINCT date FROM Date) a, (SELECT DISTINCT date FROM Date) b WHERE a.date <= b.date GROUP BY a.date HAVING COUNT(*) <= 5
et si ta colonne contient aussi l'heure et que tu veux les 5 dates sans les heures il faut remplacer les select intérieurs par (syntaxe Oracle, mais dispo dans tous les SGBDR)
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT DISTINCT Date FROM Date WHERE Date > Borne
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT DISTINCT TRUNC(Date) FROM Date WHERE Date > Borne
J'affirme péremptoirement que toute affirmation péremptoire est fausse
5ième élément : barde-prince des figures de style, duc de la synecdoque
Je ne réponds jamais aux questions techniques par MP
Solution Oracle :
Bloon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT * FROM (SELECT * FROM LATABLE ORDER BY LADATE DESC) WHERE ROWNUM <= 5
Ok merci bien pour toutes ces solutions... ça marche super
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager