Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL中包含重复数据的数据透视表_Sql Server_Sqlite - Fatal编程技术网

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链接到每个唯一的调查响应。竖起两个大拇指!