0

Hive の「group by」ステートメントでフィールドを除外するための回避策があるかどうか知りたいです。

select g.country, count(*) as road_count
from geography g 
join g_street gs on (g.id=gs.id)
group by g.iso_country_code, g.virtual
having (g.virtual='f' or g.virtual is null)
;

結果は国のみでグループ化する必要があるため、group by ステートメントに 'g.virtual' を含めたくありません。Hive では、group by ステートメントに「g.virtual」が必要です。

前もって感謝します!

4

1 に答える 1

0

クエリで何を達成しようとしているのかわかりません。select に group by ステートメントに表示されないフィールドがあるためです。私ができる唯一の提案は、地理テーブルに制限を設ける予定がある場合は、g_street と結合する前に where 句を配置してから、必要なフィールドでグループ化することです。

例を次に示します。

select g.iso_country_code, count(*)
from geography g 
where g.virtual='f' or g.virtual is null
join g_street gs on (g.id=gs.id)
group_by g.iso_country_code
于 2013-07-29T23:56:27.313 に答える