输入:
item loc month year qty
watch delhi 1 2020 10
watch delhi 2 2020 0
watch delhi 3 2020 20
watch delhi 4 2020 30
watch delhi 5 2020 40
watch delhi 6 2020 50
输出:
item loc month year qty avg
watch delhi 1 2020 10 0
watch delhi 2 2020 0 10
watch delhi 3 2020 20 10
watch delhi 4 2020 30 20
watch delhi 5 2020 40 25
watch delhi 6 2020 50 35
我们需要计算前两个月的平均值……但是计算平均值时需要一个条件…………我们不需要在计算平均值时考虑数量=0。。。。。
例如:对于第3个月,理想情况下平均值应该是10+0/2=5….但是由于我们需要忽略数量=0…所以对于第3个月,平均值应该是10/1=10。。。。
提前谢谢
4条答案
按热度按时间e37o9pze1#
从Spark中,
z9zf31ra2#
我认为这是一个有条件的印支平均数:
watbbzwu3#
它可以在spark中使用lag函数和windowframe来完成
输出:
ttcibm8c4#
在sql中,可以将窗口函数与窗口框架说明符一起使用: