Es ist erforderlich, eine Aggregatfunktion zu verwenden, wenn Sie PIVOT
verwenden . Da jedoch Ihre (RespondentId, QuestionId)
Kombination einzigartig ist, haben Ihre "Gruppen" nur eine Zeile, also können Sie MIN()
verwenden als Aggregatfunktion:
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
Wenn eine Gruppe nur eine Zeile enthält, dann ist MIN(value) = value
, oder anders gesagt:Die Aggregatfunktion wird zur Identitätsfunktion.