最近の更新

ラベル PostgreSQL の投稿を表示しています。 すべての投稿を表示
ラベル PostgreSQL の投稿を表示しています。 すべての投稿を表示

2017年4月26日水曜日

文字列を配列に分割する方法

【目的】
PostgreSQLで文字列を配列に分割します。



【手順1】
1.SQLは以下の内容。
SELECT regexp_split_to_array('123,あいう,ABC', ',')

2.実行ボタンをクリック。
3.以下の様に、ウィンドウ下の実行結果に出力されれば成功です。


























以上です。

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されます。


























以上です。

ウィンドウ関数を実行するためのテーブルの作成方法(その3)

【目的】
ウィンドウ関数を実行するためのテーブルにデータを入力します。
※その3ではNULL値を含む場合のウィンドウ関数の結果を取得します。



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


























以上です。

ウィンドウ関数を実行するためのテーブルの作成方法(その3)

【目的】
ウィンドウ関数を実行するためのテーブルを作成します。
※その3ではNULL値を含む場合のウィンドウ関数の結果を取得します。


【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.SQLエディタに以下のSQLを入力。
CREATE TABLE TRN_Score3 (
    UserID VARCHAR(50) NOT NULL,
    Score INT,
    PRIMARY KEY (UserID)
);
4.実行ボタンをクリック。
5.以下の様に、ウィンドウ下の実行結果にエラーが出力されなければ成功です。


























以上です。

ウィンドウ関数rank()でランキング(同率で番号を飛ばす)を取得する方法(PARTITION BY使用)

【目的】
PostgreSQLでウィンドウ関数rank()でランキング(同率で番号を飛ばす)を取得します。
※PARTITION BYを使用し、グループ化します。


【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.「ウィンドウ関数を実行するためのテーブルの作成方法(その2)」の手順で、ウィンドウ関数を実行するためのテーブル(その2)を作成しておきます。
4.「ウィンドウ関数を実行するためのデータの入力方法(その2)」の手順で、ウィンドウ関数を実行するためのデータ(その2)を入力しておきます。
5.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    GroupID,
    Score,
    rank() OVER (PARTITION BY GroupID ORDER BY Score DESC)
FROM
    TRN_Score2
ORDER BY
    GroupID,
    Score DESC
6.以下の様に、ウィンドウ下の実行結果にエラーが出力されなければ成功です。


























以上です。

ウィンドウ関数row_number()で行番号を取得する方法(PARTITION BY使用)

【目的】
PostgreSQLでウィンドウ関数row_number()で行番号を取得します。
※PARTITION BYを使用し、グループ化します。


【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.「ウィンドウ関数を実行するためのテーブルの作成方法(その2)」の手順で、ウィンドウ関数を実行するためのテーブル(その2)を作成しておきます。
4.「ウィンドウ関数を実行するためのデータの入力方法(その2)」の手順で、ウィンドウ関数を実行するためのデータ(その2)を入力しておきます。
5.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    GroupID,
    Score,
    row_number() OVER (PARTITION BY GroupID ORDER BY UserID)
FROM
    TRN_Score2
ORDER BY
    UserID
6.以下の様に、ウィンドウ下の実行結果にエラーが出力されなければ成功です。


























以上です。

ウィンドウ関数を実行するためのデータの入力方法(その2)

【目的】
ウィンドウ関数を実行するためのテーブルにデータを入力します。
※その2ではグループ化したウィンドウ関数の結果を取得します。



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


























以上です。

ウィンドウ関数を実行するためのテーブルの作成方法(その2)

【目的】
ウィンドウ関数を実行するためのテーブルを作成します。
※その2ではグループ化したウィンドウ関数の結果を取得します。


【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.SQLエディタに以下のSQLを入力。
CREATE TABLE TRN_Score2 (
    UserID VARCHAR(50) NOT NULL,
    GroupID VARCHAR(50) NOT NULL,
    Score INT NOT NULL,
    PRIMARY KEY (UserID)
);
4.実行ボタンをクリック。
5.以下の様に、ウィンドウ下の実行結果にエラーが出力されなければ成功です。


























以上です。

ウィンドウ関数nth_value(value, N)でN番目の値を取得する方法

【目的】
PostgreSQLでウィンドウ関数nth_value(value, N)でN番目の値を取得します。



【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.「ウィンドウ関数を実行するためのテーブルの作成方法」の手順で、ウィンドウ関数を実行するためのテーブルを作成しておきます。
4.「ウィンドウ関数を実行するためのデータの入力方法」の手順で、ウィンドウ関数を実行するためのデータを入力しておきます。
5.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    Score,
    nth_value(Score, 3) OVER (ORDER BY Score DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
FROM
    TRN_Score1
ORDER BY
    SCORE DESC
6.以下の様に、ウィンドウ下の実行結果が表示されれば成功です。


























以上です。

ウィンドウ関数last_value(value)で最後の値を取得する方法

【目的】
PostgreSQLでウィンドウ関数last_value(value)で最後の値を取得します。



【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.「ウィンドウ関数を実行するためのテーブルの作成方法」の手順で、ウィンドウ関数を実行するためのテーブルを作成しておきます。
4.「ウィンドウ関数を実行するためのデータの入力方法」の手順で、ウィンドウ関数を実行するためのデータを入力しておきます。
5.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    Score,
    last_value(Score) OVER (ORDER BY Score DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
FROM
    TRN_Score1
ORDER BY
    SCORE DESC
6.以下の様に、ウィンドウ下の実行結果が表示されれば成功です。


























以上です。

ウィンドウ関数first_value(value)で最初の値を取得する方法

【目的】
PostgreSQLでウィンドウ関数first_value(value)で最初の値を取得します。



【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.「ウィンドウ関数を実行するためのテーブルの作成方法」の手順で、ウィンドウ関数を実行するためのテーブルを作成しておきます。
4.「ウィンドウ関数を実行するためのデータの入力方法」の手順で、ウィンドウ関数を実行するためのデータを入力しておきます。
5.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    Score,
    first_value(Score) OVER (ORDER BY Score DESC)
FROM
    TRN_Score1
ORDER BY
    SCORE DESC
6.以下の様に、ウィンドウ下の実行結果が表示されれば成功です。


























以上です。

ウィンドウ関数lead(value, offset, default)でソート状態での後の行の値を取得する方法

【目的】
PostgreSQLでウィンドウ関数lead(value, offset, default)でソート状態での後の行の値を取得します。



【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.「ウィンドウ関数を実行するためのテーブルの作成方法」の手順で、ウィンドウ関数を実行するためのテーブルを作成しておきます。
4.「ウィンドウ関数を実行するためのデータの入力方法」の手順で、ウィンドウ関数を実行するためのデータを入力しておきます。
5.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    Score,
    lead(Score, 1, 0) OVER (ORDER BY Score DESC)
FROM
    TRN_Score1
ORDER BY
    SCORE DESC
6.以下の様に、ウィンドウ下の実行結果が表示されれば成功です。


























以上です。

ウィンドウ関数lag(value, offset, default)でソート状態での前の行の値を取得する方法

【目的】
PostgreSQLでウィンドウ関数lag(value, offset, default)でソート状態での前の行の値を取得します。



【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.「ウィンドウ関数を実行するためのテーブルの作成方法」の手順で、ウィンドウ関数を実行するためのテーブルを作成しておきます。
4.「ウィンドウ関数を実行するためのデータの入力方法」の手順で、ウィンドウ関数を実行するためのデータを入力しておきます。
5.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    Score,
    lag(Score, 1, 0) OVER (ORDER BY Score DESC)
FROM
    TRN_Score1
ORDER BY
    SCORE DESC
6.以下の様に、ウィンドウ下の実行結果が表示されれば成功です。


























以上です。

ウィンドウ関数ntile(N)でランキング(1..N に分割)を取得する方法

【目的】
PostgreSQLでウィンドウ関数ntile(N)でランキング(1..N に分割)を取得します。



【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.「ウィンドウ関数を実行するためのテーブルの作成方法」の手順で、ウィンドウ関数を実行するためのテーブルを作成しておきます。
4.「ウィンドウ関数を実行するためのデータの入力方法」の手順で、ウィンドウ関数を実行するためのデータを入力しておきます。
5.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    Score,
    ntile(2) OVER (ORDER BY Score DESC) AS "2分割",
    ntile(3) OVER (ORDER BY Score DESC) AS "3分割",
    ntile(4) OVER (ORDER BY Score DESC) AS "4分割",
    ntile(5) OVER (ORDER BY Score DESC) AS "5分割"
FROM
    TRN_Score1
ORDER BY
    SCORE DESC
6.以下の様に、ウィンドウ下の実行結果が表示されれば成功です。


























以上です。

ウィンドウ関数cume_dist()でランキング(%で表示):(現在の行の位置)÷(全行数)を取得する方法

【目的】
PostgreSQLでウィンドウ関数cume_dist()でランキング(%で表示):(現在の行の位置)÷(全行数)を取得します。



【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.「ウィンドウ関数を実行するためのテーブルの作成方法」の手順で、ウィンドウ関数を実行するためのテーブルを作成しておきます。
4.「ウィンドウ関数を実行するためのデータの入力方法」の手順で、ウィンドウ関数を実行するためのデータを入力しておきます。
5.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    Score,
    cume_dist() OVER (ORDER BY Score DESC)
FROM
    TRN_Score1
ORDER BY
    SCORE DESC
6.以下の様に、ウィンドウ下の実行結果が表示されれば成功です。


























以上です。

ウィンドウ関数percent_rank()でランキング(%で表示):(rank - 1)÷(全行数 - 1)を取得する方法

【目的】
PostgreSQLでウィンドウ関数percent_rank()でランキング(%で表示):(rank - 1)÷(全行数 - 1)を取得します。



【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.「ウィンドウ関数を実行するためのテーブルの作成方法」の手順で、ウィンドウ関数を実行するためのテーブルを作成しておきます。
4.「ウィンドウ関数を実行するためのデータの入力方法」の手順で、ウィンドウ関数を実行するためのデータを入力しておきます。
5.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    Score,
    percent_rank() OVER (ORDER BY Score DESC)
FROM
    TRN_Score1
ORDER BY
    SCORE DESC
6.以下の様に、ウィンドウ下の実行結果が表示されれば成功です。


























以上です。

ウィンドウ関数dense_rank()でランキング(同率で番号を飛ばさない)を取得する方法

【目的】
PostgreSQLでウィンドウ関数dense_rank()でランキング(同率で番号を飛ばさない)を取得します。



【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.「ウィンドウ関数を実行するためのテーブルの作成方法」の手順で、ウィンドウ関数を実行するためのテーブルを作成しておきます。
4.「ウィンドウ関数を実行するためのデータの入力方法」の手順で、ウィンドウ関数を実行するためのデータを入力しておきます。
5.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    Score,
    dense_rank() OVER (ORDER BY Score DESC)
FROM
    TRN_Score1
ORDER BY
    SCORE DESC
6.以下の様に、ウィンドウ下の実行結果が表示されれば成功です。


























以上です。

ウィンドウ関数rank()でランキング(同率で番号を飛ばす)を取得する方法

【目的】
PostgreSQLでウィンドウ関数rank()でランキング(同率で番号を飛ばす)を取得します。



【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.「ウィンドウ関数を実行するためのテーブルの作成方法」の手順で、ウィンドウ関数を実行するためのテーブルを作成しておきます。
4.「ウィンドウ関数を実行するためのデータの入力方法」の手順で、ウィンドウ関数を実行するためのデータを入力しておきます。
5.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    Score,
    rank() OVER (ORDER BY Score DESC)
FROM
    TRN_Score1
ORDER BY
    SCORE DESC
6.以下の様に、ウィンドウ下の実行結果が表示されれば成功です。


























以上です。

ウィンドウ関数row_number()で行番号を取得する方法

【目的】
PostgreSQLでウィンドウ関数row_number()で行番号を取得します。



【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.「ウィンドウ関数を実行するためのテーブルの作成方法」の手順で、ウィンドウ関数を実行するためのテーブルを作成しておきます。
4.「ウィンドウ関数を実行するためのデータの入力方法」の手順で、ウィンドウ関数を実行するためのデータを入力しておきます。
5.SQLエディタに以下のSQLを入力。
SELECT
    UserID,
    Score,
    row_number() OVER (ORDER BY UserID)
FROM
    TRN_Score1
ORDER BY
    UserID
6.以下の様に、ウィンドウ下の実行結果が表示されれば成功です。


























以上です。

ウィンドウ関数を実行するためのデータの入力方法

【目的】
PostgreSQLでウィンドウ関数を実行するためのテーブルにデータを入力します。



【手順1】
1.「PSqlEditの起動方法」の手順で、PSqlEditを起動。
2.「PSqlEditでPostgreSQLとの接続方法」の手順で、PostgreSQLに接続。
3.「ウィンドウ関数を実行するためのテーブルの作成方法」の手順で、ウィンドウ関数を実行するためのテーブルを作成しておきます。
4.「PSqlGridの起動方法」の手順で、PSqlGridを起動。
5.「PSqlGridでデータの追加方法」の手順で、PSqlGridをデータの追加。
6.以下の様に、データを追加すれば完成です。



































以上です。

関連記事