SQL Набор результатов запроса изменяет группу значений столбца на - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть sql результат запроса, как показано ниже

enter image description here

И мне нужен вывод как

enter image description here

Как нам этого добиться. Пытаюсь найти решение больше половины дня.
Спасибо

Ответы [ 3 ]

3 голосов
/ 16 апреля 2020

Вы, похоже, хотите:

select userid, name, coursename, applicationtype,
       (case when min(classdate) = max(classdate) then min(classdate)
             else min(classdate) || ' - ' || max(classdate)
        end) as classdate
from t
group by userid, name, coursename, applicationtype;

При этом используется стандартный оператор || для объединения строк. Некоторые базы данных имеют свои собственные методы для реализации этого.

1 голос
/ 16 апреля 2020

Просто используйте GROUP BY, как в:

select
  userid, name, coursename, applicationtype,
  min(classdate),
  max(classdate)
from (
  -- your existing query
) x
group by userid, name, coursename, applicationtype
0 голосов
/ 16 апреля 2020

Честно говоря, у вас должно быть два отдельных столбца для того, что, я думаю, будет датой начала и окончания класса (см. Ответ Impaler), потому что это облегчает дальнейший анализ. Если вы не возражаете видеть одинаковые минимальную и максимальную дату, когда есть только одна дата, вы можете просто сделать

select userid, name, coursename, applicationtype, concat(min(classdate),'-',max(classdate))
from t
group by userid, name, coursename, applicationtype
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...