旋转 table 与 SQL 中的重复项

Pivoting table with duplicates in SQL

我有一份 table 的调查答复,每个主题对每个问题的答复都列在行中,而不是列中。

这里是 table 的例子:

搜索后,我可以使用以下方法旋转它:

 SELECT id, question, answer
 MAX (CASE WHEN [question] = 'do you like cheese' THEN [answer] ELSE NULL END) AS [q1],
 MAX (CASE WHEN [question] = 'what type of cheese' THEN [answer] ELSE NULL END) AS [q2]
 MAX (CASE WHEN [question] = 'where do you buy your cheese' THEN [answer] ELSE NULL END) AS [q3]
 FROM CheeseTable
 GROUP BY id

但是,从上面link中的table可以看出,有2个id=1的条目有不同的答案。

基本上,他们是同一个人,但他们填写了两次调查(即跟进)。当我使用 GROUP BY 时,它只会旋转其中一个重复的 ID。有没有一种方法也可以旋转并包含重复的 ID?

这是我想要得到的输出:

假设您希望将多次出现的调查的答案放在一起。

首先,创建一个为 "SurveyID" 添加列的查询。 "Survey ID" 是一个代码,它使来自 "ID" 的每个调查都有一个唯一的代码(1、2、3 或 A、B、C)。这样做实际上是一个不同的问题。

然而,一旦您添加了此列(即使只是在临时子查询中),您可以通过数据透视表将其提供,将其添加到您的 "group by",然后不要将其放入 "select"