Я пытаюсь ранжировать подмножество данных в таблице, но я думаю, что я делаю что-то неправильно. Я не могу найти много информации о функции rank() для postgres, возможно, я искал не то место. В любом случае:
Я хотел бы знать ранг идентификатора, который попадает в кластер таблицы на основе даты. Мой запрос выглядит следующим образом:
select cluster_id,feed_id,pub_date,rank
from (select feed_id,pub_date,cluster_id,rank()
over (order by pub_date asc) from url_info)
as bar where cluster_id = 9876 and feed_id = 1234;
Я моделирую это после следующего сообщения stackoverflow: postgres rank
Причина, по которой я думаю, что я делаю что-то неправильно, заключается в том, что в url_info есть только 39 строк, которые находятся в cluster_id 9876, и этот запрос длился 10 минут и больше не возвращался. (на самом деле повторно запустил его довольно долгое время, и он не дал никаких результатов, но есть строка в кластере 9876 для id 1234). Я ожидаю, что это скажет мне что-то вроде "id 1234 было пятым по заданным критериям". вернет относительный ранг в соответствии с моими ограничениями запроса, правильно?
Это postgres 8.4 btw.