0
民間計算平均我們在HIVE一個有線要求,我們無法編寫查詢相同蜂房分組和通過計算不同
基本上,我們有以下的數據。
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
基本上我們要做的是列出單個發生的(customer_name,product_name)的平均價格。
例如對於產品1的組合(客戶1,產品1)價格是 25 + 20/2(客戶(1和3)不同)的出價= 22.5。但是,由於我們希望按PRODUCT_NAME進行分組,因此我們無法知道如何計算不同的發生次數。我用[]括號標記了查詢,我們覺得我們需要做一些改變。
其他方面是內部查詢,我們希望在這裏選擇客戶,他們的平均價格將落入前5名以獲得明顯的差異。 (這適用於group by子句只有一個屬性CUSTOMER_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
請檢查內部查詢。我需要僅由客戶根據價格總和組選擇客戶,然後按客戶名稱產品名稱對客戶進行分組。 – user1927808
我已經更新了預期的輸出,使其更清晰。 – user1927808