Ich habe eine Tabelle mit drei Spalten: Kategorie, Zeitstempel und Wert.SQL-Abfrage für Top 5 jeder Kategorie
Was ich will, ist eine SQL-Auswahl, die mir die 5 jüngsten Werte jeder Kategorie geben wird. Wie würde ich das machen und tun?
Ich habe versucht, dieses:
select
a."Category",
b."Timestamp",
b."Value"
from
(select "Category" from "Table" group by "Category" order by "Category") a,
(select a."Category", c."Timestamp", c."Value" from "Table" c
where c."Category" = a."Category" limit 5) b
Leider wird es erlauben es nicht, weil „Unterabfrage in FROM anderen Beziehungen der gleichen Abfrageebene nicht finden können“.
Ich benutze übrigens PostGreSQL 8.3.
Jede Hilfe wird geschätzt.
Ähnliche Fragen hier: http://stackoverflow.com/questions/1146913/select-10-rows-per-day-with-order/1174434#1174434 – krdluzni
Es gibt n Kategorien @hobodave –
Ich bin nicht zu stark vereinfachend. Es kann eine beliebige Anzahl von Kategorien geben, von 3 bis 30000. –