semi que left comandos sql database join hive

sql - que - left semi join hive



Encontrar el precio más bajo para cada categoría usando join sql en Hive (2)

Puedes usar las funciones de ventana:

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;

Tengo que escribir Hive SQL.

Quiero encontrar el precio más bajo para cada categoría. Quiero obtener una fila para cada categoría con la identificación de la categoría, la identificación del producto, el precio (precio más bajo) y las columnas de la url de la imagen. En el siguiente ejemplo, finalmente necesitamos dos filas.

Ayuadame. Gracias.

Tabla "category_product_match"

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

Tabla "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


utilizar la función de agregado mínimo con unión interna y agrupar con id de categoría

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;

Demostración aquí Sqlfiddle