我在想,如果可以基于特定列的特定列的数据而不是列来使用 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
就像在这种情况下,我想要创建组,如下所示:
答案 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
;