在oracle中使用group by with condition

时间:2014-05-09 05:59:21

标签: sql oracle

我的查询中有两种情况,一种是我需要使用group by子句,另一种是我不想使用group by

所以在下面的查询If Name = Map ..然后使用group by..like this(表示只显示不同的ID' s)

      select max(start_time),id,name from workitem where ( NAME = 'Map' or NAME = 'Validate') group by id,name;

但如果在上面的查询中名称不等于' Map'然后不要使用group by..like this(表示所有id甚至重复)

       select start_time,id,name from workitem where ( NAME = 'Map' or NAME = 'Validate');

如何通过一个查询实现此目的

1 个答案:

答案 0 :(得分:0)

  select max(start_time),id 
  from workitem where ( NAME = 'Map' or NAME = 'Validate') 
  group by id,name
  UNION ALL
  select start_time,id 
  from workitem 
  where NAME <> 'Map';