首页 > 解决方案 > 优化 HiveQL 中的多个连接

问题描述

我有 3 张桌子,食物、发票和分公司。

Food
|  foodID  |   productCode  |  foodName |  foodQty |
| -------- | -------------- | --------- | -------- |
|     1    |     000001     | Mozerella |    50    |
|     2    |     000002     |   Tomato  |    40    |
|     3    |     000003     |   flour   |    60    |

Invoice
|   id   | foodID  | branchID |  qtySold |
| ------ | ------- | -------- | -------- |
|   1    |    1    |     2    |    3.5   |
|   2    |    3    |     2    |    1.5   |
|   3    |    3    |     5    |    2     |
|   4    |    2    |     5    |    5.5   |

Branch
| branchID | branchName |
| -------- | ---------- |
|     1    |   branch1  |
|     2    |   branch2  |
|     3    |   branch3  |

我需要编写一个 HiveQL 语句来获得以下输出

| productCode | productName | branchName | total quantity sold |
| ----------- | ----------- | ---------- | ------------------- |

这是我的 HiveQL 语句

Select f.productCode as productCode, f.productName as productName, b.branchName as branchName, 
SUM(i.qtySold) as qtySold 
FROM Invoice i JOIN Food f ON (i.foodID = f.foodID) 
JOIN Branch b ON (i.branchID = b.branchID)

是否有其他加入方式可以最大限度地提高查询速度?

标签: sqljoinhivehiveql

解决方案


推荐阅读