如何在 HiveQL 中实现 PIVOT 功能。以下是 SQL 查询,请帮助我在 Hive 中实现它:
CREATE TABLE Product(Cust VARCHAR(25), Product VARCHAR(20), QTY INT)
GO
-- Inserting Data into Table
INSERT INTO Product(Cust, Product, QTY) VALUES('KATE','VEG',2)
INSERT INTO Product(Cust, Product, QTY) VALUES('KATE','SODA',6)
INSERT INTO Product(Cust, Product, QTY) VALUES('KATE','MILK',1)
INSERT INTO Product(Cust, Product, QTY) VALUES('KATE','BEER',12)
INSERT INTO Product(Cust, Product, QTY) VALUES('FRED','MILK',3)
INSERT INTO Product(Cust, Product, QTY) VALUES('FRED','BEER',24)
INSERT INTO Product(Cust, Product, QTY) VALUES('KATE','VEG',3)
GO
-- Pivot Table ordered by PRODUCT
SELECT PRODUCT, FRED, KATE FROM (
SELECT CUST, PRODUCT, QTY
FROM Product) up
PIVOT (SUM(QTY) FOR CUST IN (FRED, KATE)) AS pvt
ORDER BY PRODUCT
--期望的输出: 客户产品数量 凯特蔬菜 2 凯特苏打水 6 凯特牛奶 1 凯特啤酒 12 弗雷德牛奶 3 弗莱德啤酒 24 凯特蔬菜 3
最佳答案
Hive 不支持以这种方式旋转。如果有少量的值要对结果进行透视,则可以在查询中使用“if”或“case”语句来完成。这种方法不适用于无限或未知的产品或客户集。
有一个Jira issue请求 PIVOT 支持。
关于hadoop - 如何在 Hive 中透视数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15657145/