Se requiere usar una función agregada si usa PIVOT
. Sin embargo, dado que su (RespondentId, QuestionId)
la combinación es única, sus "grupos" tendrán solo una fila, por lo que puede usar MIN()
como una función agregada:
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
Si un grupo solo contiene una fila, entonces MIN(value) = value
, o en otras palabras:la función agregada se convierte en la función identidad.