[pgsql-jp: 37421] 一部のデータを SELECT した際に全体の順位取得
whi te
white_wwjd @ yahoo.co.jp
2006年 8月 17日 (木) 14:43:34 JST
はじめまして。
藤田と申します。
現在、行き詰っており、皆さんの知恵をお借りできれば
と思い投稿させて頂きました。
Postgres8.1を使用しております。
あるテーブルから一部のデータを取得する際に、そのデータは
テーブル全体の中で何位であるかを取得する事は出来ないでし
ょうか。
あるランキングの様なものを作成しているのですが、OFFSET
を使用して1ページに5個のデータを表示させようと思っていま
す。
表示部分はSmartyを使用しているのですが、foreach文等を使
用すると例えば2ページ目に移った際に、実際は6〜10位ですが1
〜5位と表示されてしまいます。
その為、SQL文で順位も取得出来ないかと思っております。
上手く説明が出来ないので以下に簡単なサンプルを記載します
。
TABLE名:ランキング
name|points
-----------
aa |60
bb |80
cc |70
dd |40
ee |20
SELECT * FROM ランキング OFFSET 2 LIMIT 2 ORDER BY points
DESC;
name|points
aa |60
dd |40
が取得されると思いますが、「aa」が全体の何位かを取得する
事は出来ないでしょうか。
以下の様に取得するのが理想です。
name|points|rank
aa |60 |3
dd |40 |4
pgsql-jp メーリングリストの案内