【发布时间】:2020-02-06 18:57:25
【问题描述】:
我试图解决此处所述的“分析天气模式”问题 (https://joins-238123.netlify.com/window-functions/)
你担心飓风会更频繁地发生,所以你 决定做一点点分析。对于每种天气事件 找出最近发生的 2 个事件以及它们何时发生 发生了
带有如下数据的表格天气:
type day
rain 6
rain 12
thunderstorm 13
rain 21
rain 27
rain 37
rain 44
rain 54
thunderstorm 56
rain 58
rain 61
rain 65
rain 68
rain 73
rain 82
hurricane 87
rain 92
rain 95
rain 98
rain 108
thunderstorm 111
rain 118
rain 123
rain 128
rain 131
hurricane 135
rain 136
rain 140
rain 149
thunderstorm 158
rain 159
rain 167
rain 175
hurricane 178
rain 179
rain 186
rain 192
rain 200
thunderstorm 202
rain 210
rain 219
thunderstorm 222
rain 226
rain 232
thunderstorm 238
rain 241
rain 246
rain 253
thunderstorm 257
rain 257
rain 267
rain 277
rain 286
rain 295
rain 302
rain 307
thunderstorm 312
rain 316
rain 325
thunderstorm 330
我可以想出:
select type, day, COALESCE(day - LAG(day, 1) over (partition by type order by day), 0) as days_since_previous from weather
它给了我这样的结果:
type day days_since_previous
hurricane 87 0
hurricane 135 48
hurricane 178 43
rain 6 0
rain 12 6
rain 21 9
rain 27 6
但我无法将结果缩小到 2 个最接近的事件,并且只显示它们之间的天数。
我该如何做才能得到想要的结果,例如:
type day days_since_previous
rain 61 3
hurricane 178 43
thunderstorm 238 16
【问题讨论】:
标签: sql sqlite window-functions