繁体   English   中英

从 SQL 中单列中的过滤值创建多列

[英]Creating multiple columns from filtered values in single column in SQL

我需要一些帮助 我有一个看起来像这样的数据库:

在此处输入图像描述

我想分开这个表,为每个队列创建 1 列,并将时间分组以获得一个唯一列表,因为我一次只过滤 24 小时。

预期的结果将是这样的:

在此处输入图像描述

到目前为止,我尝试过的代码是:

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

但我得到一个空列表,到目前为止只有间隔。 请问你能帮帮我吗?

使用聚合。 如果您每次只有一行,那么:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM