Erst sortieren, dann gruppieren

Labrador

Grünschnabel
Hallo,

ich raufe mir gerade Haare aus... und zwar habe ich folgende Tabelle:

Code:
+------------+---------------+-------------+-------+------------+
| id         | title         | releasedate | price | lastcheck  |
+------------+---------------+-------------+-------+------------+
| B005AC9EYG | SoulCalibur V |  1328223600 |  5500 | 1327359600 |
| B005AC9EYG | SoulCalibur V |  1328223600 |  5295 | 1327446000 |
| B005AC9EYG | SoulCalibur V |  1328223600 |  5299 | 1327532400 |
| B005AC9EYG | SoulCalibur V |  1328223600 |  5500 | 1327618800 |
| B005AC9EYG | SoulCalibur V |  1328223600 |  5495 | 1327705200 |
| B005AC9EYG | SoulCalibur V |  1328223600 |  5690 | 1327791600 |
+------------+---------------+-------------+-------+------------+
6 rows in set (0.00 sec)

Nun möchte ich die Ausgabe nach "lastcheck" sortieren und dann nach "id" gruppieren. Das Ergebnis soll eben das aktuellste Ergebniss anzeigen ("lastcheck DESC").

Der folgende Query liefert aber leider nicht das zuletzt geprüfte Ergebnis.
SQL:
SELECT * FROM table GROUP BY id ORDER BY lastcheck DESC

Wenn ich ich mit MAX arbeite, dann wird zwar das letzte Datum ausgesucht, die anderen Spalten gehören dann aber nicht mehr "dazu".
SQL:
SELECT *, MAX(lastcheck) AS lastcheck FROM table GROUP BY id ORDER BY lastcheck

Herauskommen soll.
Code:
+------------+---------------+-------------+-------+------------+
| id         | title         | releasedate | price | lastcheck  |
+------------+---------------+-------------+-------+------------+
| B005AC9EYG | SoulCalibur V |  1328223600 |  5690 | 1327791600 |
+------------+---------------+-------------+-------+------------+
 
Moin Labrador,

versuch es so:

SQL:
SELECT a.* 
FROM TABLE a
 WHERE a.lastcheck = (SELECT MAX(lastcheck) FROM TABLE)
 ORDER BY a.lastcheck, a.id

Das "ORDER BY" nur für den Fall, dass mehrere "gleiche" Max(LastCheck)-Werte enthalten sein können.
Wenn das durch die Programmlogik ausgeschlossen ist, dann einfach streichen.

Gruss
Biber$
 
Zuletzt bearbeitet:
Zurück