Het is vereist om een aggregatiefunctie te gebruiken als u PIVOT
. gebruikt . Aangezien uw (RespondentId, QuestionId)
combinatie is uniek, uw "groepen" zullen slechts één rij hebben, dus u kunt MIN()
gebruiken als een geaggregeerde functie:
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
Als een groep slechts één rij bevat, dan MIN(value) = value
, of met andere woorden:de aggregatiefunctie wordt de identiteitsfunctie.