伙计们,我们在配置单元中有一个有线需求,我们无法为同一个需求编写查询
基本上我们有以下数据。
CUSTOMER_NAME PRODUCT_NAME PRICE OCCURANCE ID
customer1, product1, 20, 1
customer1, product2, 30, 2
customer1, product1, 25, 3
customer1, product1, 20, 1
customer1, product2, 20, 2
基本上我们要做的是列出单次事件的平均价格(客户名称、产品名称)。
e、 g.对于组合(客户1,产品1),产品1的价格为25+20/2(客户(1和3)的不同发生次数)=22.5。但由于我们想按产品名称分组,我们也不知道如何计算不同的发生率。我已经用[]括号标记了这个查询,在这里我们觉得需要做一些更改。
另一个方面是内部查询,我们想在这里选择客户,他们的平均价格将下降到前5名为不同的发生这可以正常工作,因为GROUPBY子句只有一个属性(customer\u name)
select customer_name,product_name,[sum(price)/count(distinct(occurance_id))]
from customer_prd cprd
Join (select customer_name,sum(price)/count(distinct(occurance id))
order by sum group
by customer_name limit 5)
cprdd
where cprd.customer_name = cprdd.customer_name group by cprd.customer_name,cprd.product_name
需要输出。
customer1,product1, 20 (avg for occurance ID 1) + 25(average for occurance ID 2)/2 = 22.5
customer1,product2, 30 + 20/2 = 25
1条答案
按热度按时间2wnc66cl1#
如果我理解正确的话,这里唯一的问题似乎是你有复制品。如果删除重复事件,则是简单的分组方式和平均值: