2015-01-27 2 views
1

У меня есть таблица ответов на опрос, и ответы по каждому предмету для каждого вопроса перечислены в строках, а не в столбцах.Таблица поворота с дубликатами в SQL

Вот пример таблицы:

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, он только поворачивает один из дубликатов идентификаторов. Есть ли способ свернуть и включить дубликаты идентификаторов?

Это выход я хочу получить:

Example of desired output

+0

Вы агрегируют ваши данные, поэтому вывод - именно то, о чем вы просите. Можете ли вы опубликовать структуру таблицы и образцы данных? Из того, что вы разместили, похоже, вам нужна серьезная нормализация. –

+0

Да, я знаю, что данные ** плохие **. У меня нет возможности изменять базу данных, мне просто нужно получить информацию из данных. Мне не нравится работать с этим худшим продуктом. Ничего. Это была настоящая борьба, пытаясь заставить высшие взлеты осознать, что это невозможно. Я просто пытаюсь сделать омлет из всех этих сломанных яиц, плавающих в сточных водах. Спасибо за вашу проверку, что я не единственный, кто вытаскивает мои волосы. Извините, что выпустил брата. – vanellope1

ответ

0

Предположение о том, что вы хотите, чтобы ответы для нескольких появлений обследования, чтобы остаться вместе.

Сначала создайте запрос, который добавит столбец для «SurveyID». «Идентификатор опроса» - это код, который делает каждый опрос с «ID» уникальным кодом (1,2,3 или A, B, C). Выполнение этого является другим вопросом.

Однако, как только вы добавили эту колонку (даже просто во временном подзапроса), вы можете кормить его хотя ваш стержень, добавьте его в «группе», то не поставить его в «выберите»

+0

Спасибо, я думаю, что я смогу найти уникальный идентификатор опроса, созданный продавцом, который связан с каждым уникальным ответом на опрос. Два больших пальца вверх! – vanellope1

Смежные вопросы