我的目标是计算排除当前分区的平均值。在下表中,我想知道如何生成avg_prod_rev_oth_cust
列:其他客户的平均产品收入。这可以通过窗口功能来完成吗?从SQL窗口函数中排除分区?
cust prod rev avg_prod_rev avg_prod_rev_oth_cust
a x 1 3.5 4.5
a x 2 3.5 4.5
b x 3 3.5 3.5
b x 4 3.5 3.5
c x 5 3.5 2.5
c x 6 3.5 2.5
a y 7 9.5 10.5
a y 8 9.5 10.5
b y 9 9.5 9.5
b y 10 9.5 9.5
c y 11 9.5 8.5
c y 12 9.5 8.5
我使用MariaDB的列存储。我相信Columnstore的窗口函数在语法上类似于Amazon Redshift。
avg_prod_rev_oth_cust
应该计算为“该产品的收入不包括该客户/除以其他客户的销售数量之和”。第一次出现:(3 + 4 + 5 + 6)/ 4。
应该如何'avg_prod_rev_oth_cust'计算? –
正如@vkp所提到的,请详细解释这个计算应该如何工作。另外,请以可用的形式提供DDL语句和示例数据,例如作为一个SQL小提琴(请参阅http://www.sqlfiddle.com) –
它也可以帮助我们回答,如果你知道你正在使用什么数据库... –