У меня есть таблица, которая имеет три столбца: Категория, Временная метка и Значение.SQL-запрос для Топ-5 каждой категории
Что я хочу - это выбор SQL, который даст мне 5 последних значений каждой категории. Как мне это сделать?
Я попытался это:
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
К сожалению, он не допустит, потому что «подзапрос в FROM не может ссылаться на другие отношения того же уровня запросов».
Я использую PostGreSQL 8.3, кстати.
Любая помощь будет оценена по достоинству.
Аналогичный вопрос здесь: http://stackoverflow.com/questions/1146913/select-10-rows-per-day-with-order/1174434#1174434 – krdluzni
Есть n категорий @hobodave – 2009-07-31 23:32:50
Я не упрощаю. Может быть любое количество категорий, от 3 до 30000. – 2009-07-31 23:40:13