我很好奇是否有一种解决方法可以排除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'。
提前致谢!
答案 0 :(得分: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