它可以按数据而不是列分组?

时间:2017-10-25 00:04:23

标签: oracle group-by oracle10g

我在想,如果可以基于特定列的特定列的数据而不是列来使用 GROUP BY 。所以我的问题是我可以根据证书字段的出现创建组。

       DIA        MES       YEAR      TODAY   TOMORROW   ANALYSIS      LIMIT
---------- ---------- ---------- ---------- ---------- ---------- ----------
        19          9       2016        111        988          0        150 
        20          9       2016        988        853        853        150 
        21          9       2016        853        895        895        150 
        22          9       2016        895        776        776        150 
        23          9       2016        776        954          0        150 
        26          9       2016        954        968        968        150 
        27          9       2016        968        810        810        150 
        28          9       2016        810        937        937        150 
        29          9       2016        937        769        769        150 
        30          9       2016        769       1020          0        150 
         3         10       2016       1020        923        923        150 
         4         10       2016        923         32         32        150 

就像在这种情况下,我想要创建组,如下所示:

  • 第1组(分析):0
  • 第2组(分析):853,895,776,0
  • 第3组(分析):968,810,937,169,0
  • ...

1 个答案:

答案 0 :(得分:1)

假设您的表格名称为tbl,这样的内容应该有用(如果您想要谷歌,则称为“组合开始”方法):

select 
from   ( select tbl.*,
                count(case when analysis = 0 then 1 end) 
                           over (order by year, mes, dia) as cnt
         from   tbl
       )
where  ...
GROUP BY cnt
;