ホームページ >データベース >mysql チュートリアル >`tablefunc`モジュールを使用してpostgreSqlでCrosStabクエリを作成する方法は?
postgresqlクロステーブルクエリ詳細な説明とtablefunc
モジュールアプリケーション
この記事では、PostgreSQLのクエリでクロステーブルを作成する方法を紹介します。
tablefunc
インストール
tablefunc
まず、拡張子:
tablefunc
例
<code class="language-sql">CREATE EXTENSION IF NOT EXISTS tablefunc;</code>
テストテーブル:
ターゲットクロステーブル:
<code class="language-sql">CREATE TABLE tbl ( section text, status text, ct integer ); INSERT INTO tbl VALUES ('A', 'Active', 1), ('A', 'Inactive', 2), ('B', 'Active', 4), ('B', 'Inactive', 5), ('C', 'Inactive', 7);</code>
function
単一のパラメーターフォーム(限定):<code>Section | Active | Inactive ---------+--------+---------- A | 1 | 2 B | 4 | 5 C | | 7</code>
crosstab
デュアルパラメーターフォーム(推奨):
入力の複数の行の影響単一のパラメーターフォーム:
<code class="language-sql">SELECT * FROM crosstab( 'SELECT section, status, ct FROM tbl ORDER BY 1,2' -- 必须为 "ORDER BY 1,2" ) AS ct ("Section" text, "Active" int, "Inactive" int);</code>
左から右への充填の可用性。
過剰値は破棄されます。<code class="language-sql">SELECT * FROM crosstab( 'SELECT section, status, ct FROM tbl ORDER BY 1,2' -- 也可简化为 "ORDER BY 1" , $$VALUES ('Active'::text), ('Inactive')$$ ) AS ct ("Section" text, "Active" int, "Inactive" int);</code>
以前の入力銀行が推奨されます。
ダブルパラメーターフォーム:各入力値は、専用の列に割り当てられます。
postgreSql 9.6この要素コマンドをPSQLに導入しました:
以上が`tablefunc`モジュールを使用してpostgreSqlでCrosStabクエリを作成する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。