Hive

2016-04-06 22 views
2

için analitik sorgularla kısıtlamalar Bazı sütunlarda gruplamak ve group by maddesindeki sütunların alt kümeleri olan bölümler üzerinde belirli bir sütun üzerinde toplulaştırmak istediğim bir kullanım durumum var.Hive

Örnek Senaryo

Tablo Şema:

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; 

Ancak kovanı kolon value bir parçası olmadığını yakınır:

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

aşağıdaki sorguyu yürütmek istiyor group by yan tümce.

Bunu kovanda başarmanın farklı bir yolu var mı?

Her türlü öneri çok takdir edilecektir. Teşekkürler!

cevap

0

Denediğin şeyin ne olduğundan emin değilim. Cat1'in 2 farklı değeri vardır, cat2'nin 3 ve cat3'ün 5'i vardır. Kovandan (veya arkadaşlarından herhangi biri) cat1 üzerinde 2 satır, cat2 üzerinde 3 satır ve cat3 üzerinde 5 satır döndürmesini istiyorsunuz. Dahası, bunların bir veri kümesine nasıl eşleştirilmesi, herhangi bir mantık imho'sunun ötesinde. Ancak neden birlik kullanmayın

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