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

Its possible to Group by data instead of column?

我在想,是否可以使用GROUP BY 以特定方式基于特定列的数据而不是该列。所以我的问题是我可以根据特定字段的 0 次出现来创建组吗?

       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 

比如,在这种情况下,我想创建群组,如下所示:

假设你的 table 名字是 tbl,像这样的东西应该可以工作(如果你想 Google 它叫做 "start-of-group" 方法):

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
;