我有一张看起来像这样的表:
lob|desc|cnt
dogs,declined,5
cats,declined,5
rats,declined,8
dogs,failed,2
我正在尝试创建一个如下所示的新表:
lob|cnt|failed_cnt
dogs,5,2
cats,5,0
rats,8,0
本质上,我通过 LOB 列将结果合并在一起,因此没有重复的记录。说明 desc 列值失败的 LOB 值,将它们合并在一起并将该 cnt 放入新列“failed_cnt”中。如果这有意义的话。
我写了一些放置空值的 SQL 代码,但仍然存在重复项。这是我的输出:
lob|cnt|failed_cnt
dogs,5,0
cats,5,0
rats,8,0
dogs 0,2
这是我的代码:
SELECT
lob,
CASE
WHEN CNT <> 0 AND desc not like 'Failed%'
THEN CNT
ELSE 0
END AS CNT,
CASE
WHEN CNT <> 0 AND desc LIKE 'Failed%'
THEN CNT
ELSE 0
END AS FAILED_CNT
FROM
table1
有什么想法或建议吗?
使用聚合:
select lob,
sum(case when descr = 'declined' then cnt else 0 end) as declined,
sum(case when descr = 'failed' then cnt else 0 end) as failed
from t
group by lob;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句