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

PostgreSQLの列として行の値を使用する

    crosstab() 例のクエリは次のようになります:

    0に入力するには 結果のNULL 値(コメントでリクエスト)、 COALESCE()

    SELECT brand_id
         , COALESCE(jan, 0) AS "Jan-2012"
         , COALESCE(feb, 0) AS "Feb-2012"
         , COALESCE(mar, 0) AS "Mar-2012"
         , COALESCE(apr, 0) AS "Apr-2012"
    FROM crosstab(
           'SELECT brand_id, month, total
            FROM   brands
            ORDER  BY 1'
    
           ,$$VALUES ('Jan-2012'::text), ('Feb-2012'), ('Mar-2012'), ('Apr-2012')$$
     ) AS ct (
       brand_id int
     , jan numeric    -- use actual data type!
     , feb numeric
     , mar numeric
     , apr numeric);
    

    この関連する回答の詳細な説明とリンク:
    PostgreSQLクロス集計クエリ

    余談ですが、予約語の「日付」を列名として使用しないでください。Postgresで許可されている場合でも、使用しないでください。




    1. PHPで一意のランダムな数値を生成する方法

    2. 特定の列が更新された場合にのみトリガーを実行する(SQL Server)

    3. 投票テーブルのほとんどの行/投票の数でJOINとORDERBYを使用してmysql検索にLIKEを使用するにはどうすればよいですか?

    4. SQLServerで左アンチセミ結合を実行する方法