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 回答