В HiveQL как выбрать результат для всех строк и некоторых строк и отобразить их в одной таблице?
Например, у меня есть столбец кодов стран, мне нужны данные по всему миру, а также по нескольким странам в одной таблице.
Я пробовал случай, когда ближе всего я достиг стран плюс остальной мир:
select
case when lower(a.country) like 'cn' then 'China'
when lower(a.country) like 'us' then 'USA'
when lower(a.country) like 'uk' then 'UK'
when lower(a.country) like 'de' then 'Germany'
when lower(a.country) like 'jp' then 'Japan'
when lower(a.country) like 'br' then 'Brazil'
else "Rest"
end as Country,
c.D,
avg(case when a.time between 1 and 999999 then a.time else NULL end) as avg_time,
count(case when a.time between 1 and 999999 then a.time else NULL end) as time_count
from table1 a
join table2 c on a.vdate=c.cdate
and c.D like "2019_03"
group by c.D,
case when lower(a.country) like 'cn' then 'China'
when lower(a.country) like 'us' then 'USA'
when lower(a.country) like 'uk' then 'UK'
when lower(a.country) like 'de' then 'Germany'
when lower(a.country) like 'jp' then 'Japan'
when lower(a.country) like 'br' then 'Brazil'
else "Rest"
Я также пытался поместить *
в список country
ниже в другом запросе, но это, естественно, дает ошибку:
select
c.D,
a.B,
avg(case when a.time between 1 and 999999 then a.time else NULL end) as
avg_time,
count(case when a.time between 1 and 999999 then a.time else NULL end) as time_count
from table1 a
join table2 c on a.vdate=c.date
where lower(a.country) in ("cn", "us", "uk", "de", "jp", "br")
and c.D like "2019_03"
group by c.D, a.B
Как я могу вытащить весь мир ишесть стран в одном запросе?