2016-04-06 29 views
2

我有一個用例,我想在幾個列上分組,並在特定列上聚合group by子句中的列的子集。Hive中的分析查詢限制

示例方案

表結構:

(id int, category1 string, category2 string, category3 string, value int)

欲執行以下查詢:

select sum(value) over (partition by category1) as c1_sum, sum(value) over (partition by category2) as c2_sum, sum(value) over (partition by category3) as c3_sum from <table_name> group by category_1, category2, category3; 

然而蜂房抱怨列value不是的一個部分group by條款。

是否有不同的方式來實現蜂巢?

任何建議將不勝感激。謝謝!

回答

0

我不確定你在做什麼。說cat1有2個不同的值,cat2有3個,cat3有5個。你要求蜂房(或他的任何一個朋友)在cat1上返回2行,在cat2上返回3行,在cat3上返回5。此外,如何將這些匹配到數據集中超出了任何邏輯imho。但爲什麼不使用像

Select category1 as cat, sum (value) as sumCat 
from tblName 
group by category1 
Union 
Select category2 as cat, sum (value) as sumCat 
    from tblName 
group by category2 
Union 
Select category3 as cat, sum (value) as sumCat 
    from tblName 
group by category3