首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在SQL中使用动态函数来获得snake模式?

如何在SQL中使用动态函数来获得snake模式?
EN

Stack Overflow用户
提问于 2019-06-26 02:50:54
回答 3查看 88关注 0票数 -3

我正在尝试在数据集上做出时态决策。让我用一个简单的表格来解释这个问题:

代码语言:javascript
复制
Time    Var1    Var2    Var3    Var4    Var5    Var6    Total
0:00    1.69    3.27    4.80    2.14    0.70    2.14    
0:05    2.73    2.73    1.60    1.20    0.46    2.14    
0:10    5.45    2.69    4.62    1.15    1.03    4.29    16.28
0:15    2.07    4.74    2.14    1.50    0.43    2.37    
0:20    1.71    4.62    1.79    1.29    0.73    2.37    
0:25    1.88    3.60    4.00    2.09    0.56    2.25    
0:30    5.22    8.57    1.54    2.20    0.48    1.13    14.13
0:35    5.00    5.63    2.93    1.32    1.03    2.05    
0:40    4.29    5.29    2.55    1.14    0.38    1.48

对于第一个合计中显示的结果,路径将是下一个:

代码语言:javascript
复制
Time    Var1    Var2    Var3    Var4    Var5    Var6    Total
0:00    1.69    3.27    4.80            
0:05                            1.20        
0:10                                    1.03    4.29    16.28

我试图找到每个时间段的路径和总数。

我的表格是垂直制作的,而不是像示例中所示的水平制作。到目前为止,我已经使用以下命令获得了所有变量的cumulative_addition:

代码语言:javascript
复制
sum(value) over(partition by variable, time order by variable) as cumulative_addition

但我不知道这是不是我应该迈出的第一步。我还考虑过在查询中组合超前和滞后函数,但在尝试增加时间段时遇到了问题:

代码语言:javascript
复制
 Time   Variable    Value   Cumulative_addition
0:00    Var1        1.69    1.69
0:00    Var2        3.27    4.96
0:00    Var3        4.80    9.76
0:00    Var4        2.14    11.90
0:00    Var5        0.70    12.60
0:00    Var6        2.14    14.74
0:05    Var1        2.73    17.47
0:05    Var2        2.73    20.20
0:05    Var3        1.60    21.80
0:05    Var4        1.20    23.00

所以在9.76中,我应该做9.76-5=4.76,跳到0:05,在var4中不断加法,直到我再次达到5。

你认为我能用窗口函数解决这个问题吗?

预先感谢您的帮助

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56760349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档