Récupérer les deux dernières dates par ID

Fermé
mikesunshine59 Messages postés 73 Date d'inscription lundi 22 janvier 2018 Statut Membre Dernière intervention 24 février 2018 - 11 févr. 2018 à 11:01
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 11 févr. 2018 à 14:14
Bonjour,

J'utilise le code ci-dessous pour récupérer les deux dernières 'Datecreation' pour chaque 'MarketName'. Je remarque que cela ne me donne pas les deux dernières 'Datecreation' pour chaque 'MarketName' et je ne comprends pas pourquoi.

Je précise que DateCreation est dans ce format : YYYY-MM-DD HH:MM:SS (Exemple : 2018-02-11 09:25:02)

Pouvez-vous m'aider svp ?


SELECT
getmarketsummaries.*
FROM
getmarketsummaries INNER JOIN (
SELECT
MarketName,
GROUP_CONCAT(Datecreation ORDER BY MarketName DESC) grouped_Datecreation
FROM
getmarketsummaries
GROUP BY MarketName) group_max
ON getmarketsummaries.MarketName = group_max.MarketName
AND FIND_IN_SET(Datecreation, grouped_Datecreation) BETWEEN 1 AND 2
ORDER BY
getmarketsummaries.MarketName, getmarketsummaries.Datecreation DESC

1 réponse

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
11 févr. 2018 à 14:14
bonjour, et ceci?
SELECT id, Timestamp
   FROM
     (SELECT id, Timestamp, 
		@id_rank := IF(@cur_id = ID, @id_rank + 1, 1) AS id_rank,
                  @cur_id := id
       FROM (SELECT *, @cur_id:=id from testy.t_testy
       ORDER BY id, Timestamp DESC) ordered
       ) ranked
   WHERE id_rank <= 2
ORDER BY id, Timestamp;
0