テーブル内のデータのサブセットをランク付けしようとしていますが、何か間違っていると思います。postgres の rank() 機能に関する多くの情報が見つかりません。間違った場所を探しているのかもしれません。どちらにしても:
日付に基づいて、テーブルのクラスター内にある ID のランクを知りたいです。私のクエリは次のとおりです。
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
私が何か間違ったことをしていると思う理由は、cluster_id 9876 にある url_info に 39 行しかなく、このクエリが 10 分間実行され、戻ってこなかったからです。(実際にはかなりの時間再実行しましたが、結果は返されませんでしたが、クラスター9876にID 1234の行があります)これにより、「ID 1234は指定された基準で5番目でした」のようなことがわかると思います)。は、クエリの制約に従って相対的なランクを返しますよね?
これはpostgres 8.4 btwです。