sql >> データベース >  >> RDS >> PostgreSQL

2つ(またはそれ以上)の行名を持つクロス集計

    crosstab()を使用する 追加のモジュールtablefuncから。

    特定の難しさ これは、「行名」が2つの列で構成されていることです。クエリの目的で連結し、最後に連結された列を表示しません。
    fnと仮定します およびln NOT NULLです 。未テスト:

    SELECT fn, ln, cat1, cat2
    FROM crosstab(
           'SELECT fn || ln AS row_name, fn, ln, file_type, attribute
            FROM   t
            ORDER  BY fn, ln, file_type'
    
          ,$$VALUES ('cat1'::text), ('cat2')$$)
    AS t (row_name text, fn text, ln int, cat1 text, cat2 text);
    

    もう1つのオプションは、dense_rank()のようなウィンドウ関数を使用して代理の「行名」を追加することです。 定義する2つの列を「追加の列」として扱います。例:

    • 複数の「行名」列を持つPostgresqlクロス集計クエリ

    基本:

    • PostgreSQLクロス集計クエリ


    1. Django Migrationsで削除されたテーブルを再作成するにはどうすればよいですか?

    2. Oracle SQL Developerで表スペースをチェックする方法は?

    3. PDOでパスワードハッシュを使用してコードをより安全にするにはどうすればよいですか?

    4. SQLServerのTSQLおよびGUIによってテーブルにID列を追加する方法-SQLServer/T-SQLチュートリアルパート40