Требуется использовать агрегатную функцию, если вы используете PIVOT
. Однако, поскольку ваша комбинация (RespondentId, QuestionId)
уникальна, у ваших «групп» будет только одна строка, поэтому вы можете использовать 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
Если группа содержит только одну строку, то MIN(value) = value
, или, другими словами: агрегатная функция становится тождественной функцией.