在SQL中使用重复的透视表

时间:2015-01-27 19:03:39

标签: sql-server sqlite

我有一份调查回复表,每个问题的每个主题的回答都按行列出,而不是列。

以下是该表的示例:

Example of the input 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

但是,正如您在上面链接中的表格中所看到的,有2个id = 1的条目有不同的答案。

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

这是我想要的输出:

Example of desired output

1 个答案:

答案 0 :(得分:0)

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

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

但是,一旦添加了此列(即使只是在一个临时子查询中),您可以通过您的数据透视表将其提供,然后将其添加到"组中,然后不将其添加到" ;选择"