在Hive中使用join sql查找每个类别的最低价格

时间:2016-12-13 02:19:23

标签: sql database join hive

我必须编写Hive SQL。

我想找到每个类别的最低价格。我想为每个类别获取一行,包括类别ID,产品ID,价格(最低价格)和图片网址列。 在下面的示例中,我们最终需要两行。

帮帮我。谢谢。

" category_product_match"表

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

"产品的详细信息"表

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

2 个答案:

答案 0 :(得分:0)

您可以使用窗口功能:

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;

答案 1 :(得分:0)

使用内部联接的Min聚合函数和类别ID

的group by
 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