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

Oracleの集計を使用したテーブルの回転/ピボット

    はい、そう思います。 MAXを使用すると、このようなピボットを簡単に実行できます。 集計:

    SELECT
        *
    FROM
    (
        SELECT
            project,
            attribute,
            value
        FROM
            table1
    ) AS SourceTable
    PIVOT
    (
        MAX(value)
        FOR attribute IN ([foo],[bar],[baz])
    ) AS pvt
    

    それ以外の場合は、max集計内でcaseステートメントを実行する必要があります。このように:

    SELECT
        MAX(CASE WHEN attribute='foo' THEN value ELSE NULL END) AS foo,
        MAX(CASE WHEN attribute='bar' THEN value ELSE NULL END) AS bar,
        MAX(CASE WHEN attribute='baz' THEN value ELSE NULL END) AS baz,
        project
    FROM
        table1
    GROUP BY
        project
    

    これは、PIVOTを実行するのとほぼ同じです。 。しかし、私はPIVOTを実行したいと思います CASE WHEN MAXを介して ..




    1. mysql_real_escape_string()はSQLインジェクションから完全に保護しますか?

    2. JSON_ARRAY_APPEND()–MySQLのJSON配列に値を追加します

    3. N番目に高い給与

    4. MicrosoftAccessで組み込みのCRMテンプレートにアクセスする方法