SQL将某些记录“分组”

时间:2015-04-14 20:35:03

标签: sql oracle11g group-by

我不完全确定在SQL中这是否可行(我绝不是专家)。

我在TABLEA中有如下行的数据:

enter image description here

我希望有一个SQL输出,它将任何记录“组合”在一起,其中Activity!= D.输出结果需要如下表所示:

enter image description here

任何“合并”活动都会被归为“合并”。在示例中,这将是A和B.

我开始了

select 
  cycle_start,
  cycle_end,
  activity_start,
  activity_end,
  case when (Activity="D") then "D" else "Merged" end

然后我很难让聚合正确

1 个答案:

答案 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)