2014-02-19 59 views
0

我该做什么按组将数值拆分为2:按组数拆分组2按数字2

select avg(blocks),to_char(dat,'yy-mm-dd hh24'),'small'/'big' 
from tab 
group by to_char(dat,'yy-mm-dd hh24'), (blocks case1 >1000, case2 <=1000) 

为表标签:

id  number 
blocks number 
dat  date 

表:

ID BLOCKS DAT 
--- ------- -------- 
1  2 14-02-19 14:01:00 
2  2 14-02-19 14:02:00 
3 2000 14-02-19 14:03:00 
4 3000 14-02-19 14:04:00 

结果:

2  14-02-19 14 small 
2500 14-02-19 14 big 

回答

0

你想要一个case声明:

select avg(blocks), to_char(dat,'yy-mm-dd hh24') 
from tab 
group by to_char(dat,'yy-mm-dd hh24'), 
     (case when blocks > 1000 then 1 
       else 2 
     end); 
+0

效率高吗?有更好的方法吗? – Nir

+0

@nir。 。 。这非常有效。 –

+0

谢谢。我添加了一些小东西,请参阅更新。从'group by'复制'case'部分是否有效? – Nir