Nó bắt buộc phải sử dụng hàm tổng hợp nếu bạn sử dụng PIVOT
. Tuy nhiên, vì (RespondentId, QuestionId)
của bạn kết hợp là duy nhất, "nhóm" của bạn sẽ chỉ có một hàng, vì vậy bạn có thể sử dụng MIN()
như một hàm tổng hợp:
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
Nếu một nhóm chỉ chứa một hàng thì MIN(value) = value
hay nói cách khác:hàm tổng hợp trở thành hàm nhận dạng.