最近の更新

2012年8月2日木曜日

ウィンドウ関数rank()でランキング(同率で番号を飛ばす)を取得する方法(NULL値が存在する場合)

【目的】
PostgreSQLでウィンドウ関数rank()でランキング(同率で番号を飛ばす)を取得します。
※NULL値を含む場合のウィンドウ関数の結果を取得します。


【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.「ウィンドウ関数を実行するためのテーブルの作成方法(その3)」の手順で、ウィンドウ関数を実行するためのテーブル(その3)を作成しておきます。
4.「ウィンドウ関数を実行するためのデータの入力方法(その3)」の手順で、ウィンドウ関数を実行するためのデータ(その3)を入力しておきます。

【手順2】
1.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    Score,
    rank() OVER (ORDER BY Score DESC)
FROM
    TRN_Score3
ORDER BY
    SCORE DESC
2.以下の様に、ウィンドウ下の実行結果にエラーが出力されなければ成功です。
※NULL値が先頭に来ます。




【手順3】
1.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    Score,
    rank() OVER (ORDER BY Score DESC NULLS LAST)
FROM
    TRN_Score3
ORDER BY
    SCORE DESC
2.以下の様に、ウィンドウ下の実行結果にエラーが出力されなければ成功です。
※Windows関数のOVER句に「NULLS LAST」を付与すると、NULL値が最後に来ます。




【手順4】
1.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    Score,
    rank() OVER (ORDER BY Score DESC NULLS LAST)
FROM
    TRN_Score3
ORDER BY
    SCORE DESC NULLS LAST
2.以下の様に、ウィンドウ下の実行結果にエラーが出力されなければ成功です。
※ちなみにSELECTのORDER BY句に「NULLS LAST」を付与すると、NULL値が最後に来てORDER BYされます。


























以上です。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

関連記事