Sql server SQL中包含重复数据的数据透视表
我有一个调查回复表,每个主题对每个问题的回复是按行列出的,而不是按列列出的 以下是该表的一个示例: 在搜索之后,我能够使用以下方法对其进行旋转:Sql server SQL中包含重复数据的数据透视表,sql-server,sqlite,Sql Server,Sqlite,我有一个调查回复表,每个主题对每个问题的回复是按行列出的,而不是按列列出的 以下是该表的一个示例: 在搜索之后,我能够使用以下方法对其进行旋转: 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 [ans
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
但是,从上面链接中的表中可以看到,有两个id=1的条目有不同的答案
基本上,他们是同一个人,但他们填写了两次调查,即随访。当我使用GROUP BY时,它只旋转一个重复的ID。是否有一种方法也可以透视并包含重复的ID
这是我想要得到的输出:
假设您希望调查的多个事件的答案保持一致 首先,创建一个为SurveyID添加列的查询。调查ID是一个代码,使ID中的每个调查都有一个唯一的代码1、2、3或a、B、C。这样做实际上是一个不同的问题
但是,一旦您在临时子查询中添加了此列,您就可以通过pivot将其输入,将其添加到您的group by,然后不将其放入select中。您正在聚合数据,因此输出正是您所要求的。你能发布表格结构和样本数据吗?从你发布的内容来看,看起来你需要一些严格的标准化。是的,我知道数据不好。我没有能力改变数据库,我只需要从数据中获取信息。我不喜欢使用这种劣质产品。一点也没有。要让高层意识到这是行不通的,这是一场相当艰苦的斗争。我只是想把这些在污水中游泳的破鸡蛋做成煎蛋卷。谢谢你证实我不是唯一一个惹我生气的人。很抱歉向bro泄气。谢谢,我想我可能能够找到由供应商生成的唯一调查ID,该ID链接到每个唯一的调查响应。竖起两个大拇指!