Возврат товара из данных заказа из нескольких записей в столбцы - PullRequest
1 голос
/ 11 июля 2019

У меня есть база данных 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 

Грустная часть в том, что я делал это раньше, но сейчас не могу этого достичь.Я знаю, что совершаю глупую ошибку.Любой пример кода поможет.

1 Ответ

0 голосов
/ 11 июля 2019

Я думаю, что вы хотите агрегации:

select s.survey_taker_ID, AVG(s.Millisecond) as Duration, 
       max(case when s.Question_Number = 1 then s.Answer end) as Product1,
       max(case when s.Question_Number = 2 then s.Answer end) as Product2
from survey as s
group by s.survey_taker_ID;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...