我在imapla表中进行查询,这些表是在mysql中创建的,在hdfs中通过hive导入的。我有搜索,我知道这不是官方支持或鼓励的sql,但它传达了我想做什么。以下是我正在使用的表:
Customers Table:
+---------+---------+
| cust_id | zipcode |
+---------+---------+
| 1 | 94964 |
| 2 | 98577 |
| 3 | 52593 |
| 4 | 43972 |
| 5 | 95298 |
+---------+---------+
Orders Table
+---------+----------+
| cust_id | order_id |
+---------+----------+
| 1 | 11 |
| 2 | 12 |
| 3 | 13 |
| 4 | 14 |
| 5 | 15 |
+---------+----------+
Order_Details Table
+----------+---------+
| order_id | prod_id |
+----------+---------+
| 11 | 123 |
| 11 | 124 |
| 11 | 125 |
| 14 | 126 |
| 15 | 127 |
+----------+---------+
Products Table
+---------+-------------+
| prod_id | shipping_wt |
+---------+-------------+
| 123 | 1 |
| 124 | 1 |
| 125 | 1 |
| 126 | 8 |
| 126 | 2 |
+---------+-------------+
最后,我要返回每个订单的总重量(从一个订单id中的所有产品id计算)。我已经加入了所有的表:
SELECT ord.order_id, cus.cust_id, cus.zipcode, ordet.prod_id, prod.shipping_wt
FROM customers cus
JOIN orders ord
ON cus.cust_id = ord.cust_id
JOIN order_details ordet
ON ordet.order_id = ord.order_id
JOIN products prod
ON prod.prod_id = ordet.prod_id;
在考虑如何做到这一点时,我想到了for each循环,但我知道这是不受支持的。还有什么方法可以完成同样的任务?我知道我需要在一个订单id中为所有产品id做一个sum(),但是我不知道怎么做。
有人能给我指出正确的方向吗?我真的在努力学习,我想了解在处理这样的事情时的心态。
谢谢您!
1条答案
按热度按时间8nuwlpux1#
添加sum和group by(以及一些格式,以便于查看我所做的工作):