Ich habe eine einfache Tabelle (id INT, revision INT, comment VARCHAR(140))
mit Inhalt wie folgt kommentiert:Best-Performance-Abfrage für "Max in Gruppe auswählen"?
1|1|hallo1|
1|2|hallo2|
1|3|hallo3|
2|1|hallo1|
2|2|hallo2|
Ich bin für eine SQL-Anweisung suchen, die Sie jeden Kommentar zurück mit der höchsten Revision:
1|3|hallo3|
2|2|hallo2|
Ich habe kommen mit dieser Lösung:
select id, revision, comment
from comments
where revision = (
select max(revision)
from comments as f
where f.id = comments.id
);
aber es ist sehr langsam auf große Datenmengen. Gibt es bessere Abfragen, um dies zu erreichen?
könnten Sie das Thema zu reflektieren Optimierung oder Performance erwägen Umbenennung? – hometoast
Die Verwendung von Fensterfunktionen ist normalerweise schneller. –