我不完全确定在SQL中这是否可行(我绝不是专家)。
我在TABLEA中有如下行的数据:
我希望有一个SQL输出,它将任何记录“组合”在一起,其中Activity!= D.输出结果需要如下表所示:
任何“合并”活动都会被归为“合并”。在示例中,这将是A和B.
我开始了
select
cycle_start,
cycle_end,
activity_start,
activity_end,
case when (Activity="D") then "D" else "Merged" end
然后我很难让聚合正确
答案 0 :(得分:3)
是的,您可以使用case
:
group by
执行此操作
select cycle_start, cycle_end,
min(activity_start) as activity_start,
max(activity_end) as activity_end,
(case when Activity = 'D' then 'D' else 'Merged' end)
from table t
group by cycle_start, cycle_end,
(case when Activity = 'D' then 'D' else 'Merged' end)