0
我有一些表爲百分比值:找出使用蜂巢
Table_1:
+------------+--------------+
| Student_ID | Student_Name |
+------------+--------------+
| 000 | Jack |
| 001 | Ron |
| 002 | Nick |
+------------+--------------+
Table_2:
+-----+-------+-------+
| ID | Total | Score |
+-----+-------+-------+
| 000 | 100 | 80 |
| 001 | 100 | 80 |
| 002 | 100 | 80 |
+-----+-------+-------+
Table_3:
+-----+-------+-------+
| ID | Total | Score |
+-----+-------+-------+
| 000 | 100 | 60 |
| 001 | 100 | 80 |
| 002 | 100 | 70 |
+-----+-------+-------+
Expected_Output:
ID percent
000 70
001 80
002 75
我以前創建的蜂巢表。現在,我想創建一個HiveQL,以便從上面的3個表中獲得預期的輸出結果。 我在想什麼做的是,在我的查詢我會:
- 使用LEFT OUTER JOIN使用ID
- 找到「總計」之和「分數」爲每個ID
- 分總和的「得分」乘以「總數」得到百分比。
我想出了這一點:
INSERT OVERWRITE TABLE expected_output
SELECT t1.Student_ID AS ID, (100*t4.SUM1/t4.SUM2) AS percent
FROM Table_1 t1
LEFT OUTER JOIN(
SELECT (ISNULL(Total,0) + ISNULL(Total,0)) AS ‘SUM2’, (ISNULL(Score,0) + ISNULL(Score,0)) AS ‘SUM1’
FROM t4
)ON (t1.Student_ID=t2.ID) JOIN Table_3 t3 ON (t3.ID=t2.ID);
而且,我被困在這一點上。不知道如何達到結果。 有什麼想法嗎?
謝謝!如果我在任何列中有任何空值,我可以用這個方法替換爲0嗎? – Tanvir
當然你可以......像你在查詢中那樣使用'isnull'。 –
非常感謝! – Tanvir