首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Aster Basket_Generator函数计算聚合

如何使用Aster Basket_Generator函数计算聚合
EN

Stack Overflow用户
提问于 2013-07-24 02:35:41
回答 1查看 510关注 0票数 1

我正在使用Aster Basket_Generator函数从购物表(retail_purchases)中计算购物篮。我可以使用以下代码创建篮子,而不会出现问题:

代码语言:javascript
复制
SELECT order_number, gsi_sku1, gsi_sku2, Count(1) 
FROM basket_generator(
    ON retail_purchases 
    PARTITION BY order_number 
    BASKET_SIZE(2) 
    BASKET_ITEM('gsi_sku')
    ACCUMULATE('order_number')
) 
WHERE gsi_sku1 in (11001788, 12002389) 
GROUP BY 1, 2, 3; 
LIMIT 10;

我还想做的是,计算每个篮子的平均值。理想情况下,这将作为一个列返回给我,但我会对购物篮中每件商品的平均销售价格感到完全满意。

我尝试过以下几种方法:

代码语言:javascript
复制
SELECT order_number, gsi_sku1, gsi_sku2, avg(sales_amt), Count(1) 
FROM basket_generator(
    ON retail_purchases 
    PARTITION BY order_number 
    BASKET_SIZE(2) 
    BASKET_ITEM('gsi_sku')
    ACCUMULATE('order_number', 'sales_amt')
) 
WHERE gsi_sku1 in (11001788, 12002389) 
GROUP BY 1, 2, 3; 
LIMIT 10;

但是avg(sales_amt)列似乎没有返回正确的值。在使用Aster Basket_Generator分析函数时,推荐的计算篮子聚合的方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2013-07-27 03:30:10

来自basket_generator上的Aster文档

clause子句中的

列应该是PARTITION BY子句中列的子集。否则,不能保证确定性属性。

因此,您的方法不成立,因为sales_amt不是PARTION BY的一部分(而且由于价格变化,理所当然也是如此)。

一种选择是将basket_generator的结果放入新的表中,然后将其连接到包含价格的产品目录中-结果表将包含价格以计算平均销售价格。

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

https://stackoverflow.com/questions/17818325

复制
相关文章

相似问题

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