Создание нескольких столбцов из отфильтрованных значений в одном столбце в SQL - PullRequest
1 голос
/ 09 апреля 2020

Мне нужна помощь. У меня есть база данных, которая выглядит примерно так:

enter image description here

, и я хотел бы отделить эту таблицу, создавая 1 столбец на очередь и группировка времени, чтобы иметь уникальный список, поскольку я фильтрую только 24 часа за один раз.

Ожидаемый результат будет примерно таким:

enter image description here

Пока что я попробовал код:

select intervals,
case when Queue = 'A' then #calls end as queueA#calls,
case when Queue = 'A' then %callsAnswered end as queueA%ans,
case when Queue = 'B' then #calls end as queueB#calls,
case when Queue = 'B' then %callsAnswered end as queueB%ans,
case when Queue = 'C' then #calls end as queueC#calls,
case when Queue = 'C' then %callsAnswered end as queueC%ans
from myTable
group by intervals
order by intervals

Но я получаю пустой список только с интервалами. Не могли бы вы помочь мне, пожалуйста?

1 Ответ

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

Использовать агрегацию. Если у вас есть только одна строка за раз, то:

select intervals,
       max(case when Queue = 'A' then #calls end) as queueA#calls,
       max(case when Queue = 'A' then %callsAnswered end) as queueA%ans,
       max(case when Queue = 'B' then #calls end) as queueB#calls,
       max(case when Queue = 'B' then %callsAnswered) end as queueB%ans,
       max(case when Queue = 'C' then #calls end) as queueC#calls,
       max(case when Queue = 'C' then %callsAnswered end) as queueC%ans
from myTable
group by intervals
order by intervals
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...