2009-10-28 5 views
1

Lorsque je vais regrouper par colonne de détails et de chercher la date "2009-08-05" Je veux aussi l'ID d'un jour plus tôt.top 2 valeurs du groupe par

select id, details, abc_date from test order by details limit 10; 
+------------+------------------+------------+ 
| id   | details   | abc_date | 
+------------+------------------+------------+ 
|  2224 | 10025   | 2009-08-11 | 
|  4575 | 10025   | 2009-09-02 | 
|  1617 | 10025   | 2009-08-05 | 
|  3614 | 10025   | 2009-08-24 | 
|  1811 | 10025   | 2009-08-07 | 
|  969 | 10025   | 2009-07-29 | 
|  1441 | 10025   | 2009-08-03 | 
|  4345 | 10025   | 2009-08-31 | 
|  3330 | 10025   | 2009-08-21 | 
|  799 | 10025   | 2009-07-27 | 
+------------+------------------+------------+ 
+0

Pouvez-vous inclure également un exemple de GROUP BY sélectionnez vous essayez? – csl

+0

Quel problème avez-vous? Qu'avez-vous essayé jusqu'à présent? –

Répondre

1
SELECT details, 
     (
     SELECT id 
     FROM test ti 
     WHERE ti.details = to.details 
     ORDER BY 
       date 
     LIMIT 1 
     ) AS first_id 
FROM test to 
GROUP BY 
     details 
0

si vous voulez dire commandez par date dans les détails (et son pas clair de votre question que c'est-ce que vous voulez), essayez:

select id, details, abc_date from test order by details,abc_date limit 10;