基于合并列的计数

Count based on merge column

我有一个具有以下结构的 table。

up_cnt_1对应dt_1,up_cnt_2对应dt_2列。我想汇总按 dt_1 分组的 up_cnt_1 和按 dt_2 分组的 up_cnt_2,但最后的 table 应该有这些日期的单个列,尽管计数将是单独提到。合并的日期列基本上具有 dt_1 和 dt_2 的唯一值,对于任何日期,如果缺少相应计数的值,则显示为 0.

预期输出如下:

我正在使用 Teradata 16 作为 RDBMS

一个选项使用 union all 和聚合:

select dt_merge, sum(up_cnt_1) up_cnt_1, sum(up_cnt_2) up_cnt_2
from (
    select dt_1 dt_merge, up_cnt_1, 0 up_cnt_2 from mytable 
    union all 
    select dt_2, 0, up_cnt_2 from mytable 
) t
group by dt_merge