问题描述
我有以下数据集:
这些行按start_time字段按升序排序,我想对具有一系列假值的行进行分组,直到第一个真值包括第一个真值为止。
>也就是说,对于上述数据集,我需要以下输出:
(分组字段可以包含我编写的值以外的其他值)
解决方法
我认为加和可以满足您的要求
select t.*,1 + coalesce(sum(case when bool = true then 1 else 0 end) over(
order by start_time
rows between unbounded preceding and 1 preceding
),0) as grp
from mytable t
,
使用Vertica,您将使用Vertica的可爱import math
def area(a,b=0):
y = math.pi *a*b
x = math.pi *a**2
return x,y
def main():
print("First",area(7))
print("Second",area(5,4))
main()
函数编写一个更好的可读查询,该函数是一个分析函数,在每个CONDITIONAL_TRUE_EVENT()
表达式处均以0开头,每次布尔表达式时均以1递增是真的。
每次间隔超过1天或上一行在PARTITION BY
以及当前行时,都需要增加。所以:
TRUE