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

SQL から結果セットを転置する方法

    PIVOT を使用する場合は、集計関数を使用する必要があります .ただし、あなたの (RespondentId, QuestionId) 組み合わせは一意です。「グループ」には1行しかないため、 MIN() を使用できます 集約関数として:

    SELECT RespondentId, CanBathe, TimesADay, SoapPrice
    FROM (SELECT RespondentId, ColumnName, AnswerValue FROM MyTable) AS src
    PIVOT (MIN(AnswerValue) FOR ColumnName IN(CanBathe, TimesADay, SoapPrice)) AS pvt
      

    グループに含まれる行が 1 つだけの場合、MIN(value) = value 、つまり、集約関数が恒等関数になります。



    1. データベースレコードのカウントの保存は冗長ですか?

    2. 20代のVLDB:もっと大きなものが必要になる…

    3. 無料または試用版のOracleデータベース環境

    4. Oracleストアドプロシージャで一時テーブルを作成して使用するにはどうすればよいですか?