У меня есть база данных SQL Server, которая содержит данные опросов и очень близка к этому вопросу Как вернуть упорядоченные данные из нескольких записей в одну запись в MySQL?
Данные почтиидентичны.Снова скопировано из приведенного выше вопроса, но с добавлением миллисекунды и столбца datetime2
.
SURVEY_TAKER_ID | QUESTION_NUMBER | RESPONSE
----------------+-----------------+-----------
101 1 Apple
102 1 Orange
103 1 Banana
101 2 Morning
102 2 Evening
103 2 Afternoon
101 3 Red
102 3 Blue
103 3 Yellow
Я пытаюсь использовать группирование по функциям, но это не группировка ответов, а отображение ответов в формате строк.
select
s.survey_taker_ID, AVG(s.Millisecond)Duration,
(case when s.Question_Number = 1 then s.Answer end Product1,
(case when s.Question_Number = 2 then s.Answer end Product2
from
survey as s
group by
s.survey_taker_ID, s.Question_Number,s.Answer
Вывод:
Survey_Taker_ID | Duration | Product1 | Product2
----------------+----------+-----------+----------
101 | 11125 | Apple | Morning
102 | 12545 | Orange | Evening
Грустная часть в том, что я делал это раньше, но сейчас не могу этого достичь.Я знаю, что совершаю глупую ошибку.Любой пример кода поможет.