在Hive中使用join sql查找每個類別的最低價格




database (2)

你可以使用窗口函數:

select pc.*
from (select pi.*, cpm.category_id,
             row_number() over (partition by cpm.category_id order by pi.price asc) as seqnum
      from product_info pi join
           category_product_match cpm
           on cpm.product_id = pi.prd_id
     ) pc
where seqnum = 1;

我必須編寫Hive SQL。

我想找到每個類別的最低價格。 我想為每個類別獲得一行,包括類別ID,產品ID,價格(最低價格)和圖片url列。 在下面的例子中,我們最後需要兩行。

幫我。 謝謝。

“category_product_match”表

category_id    product_id
1001             500001
1001             500002
1002             500101
1002             500102
1002             500103

“product_info”表

prd_id      price      img_url
500001        29000      /app/url/img/500001.jpg
500002        29500      /app/url/img/500002.jpg
500101        8100       /app/url/img/500101.jpg
500102        8100       /app/url/img/500102.jpg
500103        8500       /app/url/img/500103.jpg

使用最小聚合函數與內部聯接和分組與類別id

 Select category_id ,product_id, Min(price) as lowest_Price,img_url
 from  category_product_match
 inner join product_info on product_id=prd_id
 group by category_id;  

在這裡演示Sqlfiddle





hive