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

行を1つの列に折りたたむ

    まず、拡張機能tablefunc をインストールします。 、まだ行っていない場合。データベースごとに1回実行する必要があります。

    CREATE EXTENSION tablefunc;
    

    PostgreSQL 9.1が必要です CREATE EXTENSIONの場合 。古いバージョンでは、次のようなコマンドを使用してシェルからインストールスクリプトを実行する必要があります。

    psql -d dbname -f SHAREDIR/contrib/tablefunc.sql
    

    Postgres9.0の詳細マニュアルの詳細

    次に、次のようなクエリを使用できます:

    SELECT *
    FROM   crosstab (
        'SELECT id
               ,label
               ,value
         FROM   t
         ORDER  BY 1, 2',
    
        'SELECT DISTINCT label
         FROM   t
         ORDER  BY 1')
    AS tbl (
     id   int
    ,lab1 text
    ,lab2 text
    ,lab3 text
    ,lab4 text
    ,lab5 text
    ,lab6 text
    );
    

    要求したものを正確に返します。
    そのための関数を作成することもできます。この密接に関連する回答 に詳細情報を追加しました 。



    1. データベース+ajax+phpからデータをロードする

    2. チャットアプリのストレージ効率のためのファイルとデータベース

    3. Oracle Javaの更新に早期にアクセスして、RIAをテストし、これらの更新が公開されたときにファイアドリルを回避するにはどうすればよいですか?

    4. スプレッドシートとデータベース:切り替える時が来ましたか?パート1