[sql/postgresql] Как одним запросом сделать следующее:

xlapshinx

Посчитать для каждого элемента множества его порядковую статистику.
Тоесть есть например в таблице 2 поля: value и order. Нужно для каждого элемента в order записать количество элементов из этого же множества у которых value больше чем у данного.
И еще хотелось бы чтобы это работало за N*logN с учетом того что есть индекс по value.

hwh2010

Тоесть есть например в таблице 2 поля: value и order. Нужно для каждого элемента в order записать количество элементов из этого же множества у которых value больше чем у данного.
я не понял. "это множество" — это вся таблица или строки с тем же order?
в любом случае, взботни оконные функции:
http://www.postgresql.org/docs/8.4/interactive/tutorial-wind...

mbolik1


select value, count(1) over (order by value desc range between unbounded preceding and current row)
from table

select value, rank over (order by value desc)
from table

xlapshinx

множество - это множество строк таблицы
Оставить комментарий
Имя или ник:
Комментарий: