Использование Hive DML для создания отчетов, обобщающих данные - PullRequest
1 голос
/ 01 апреля 2019

Использование соответствующих операторов Hive DML и функций сводки для генерации отчетов, в которых обобщаются данные.

year,town,taxi_co2,bus_co2
2013,luton,1,1
2013,manchester,3,2
2013,london,2,1
2014,luton,1,3
2014,london,3,1
2015,luton,4,1
2014,manchester,6,7
2016,london,2,2
2015,luton,4,1
2015,manchester,1,8
2014,london,3,1
2015,luton,3,1
2015,manchester,1,8
2015,london,3,1
2016,luton,6,5
2016,manchester,4,2
2016,london,3,2
2015,luton,4,1
2013,luton,1,2
2015,london,7,8
2013,manchester,3,2
2015,manchester,1,8
2015,london,7,8

В результате я хочу отфильтровать только 2013 год.всего.

town, total taxi co2, total bus co2, total (both taxi and bus)
luton, x, x, x
manchester, x, x
london, x, x, x

Я пытался использовать HQL ниже, но я не могу сообразить, как его завершить, или правильный ли мой HQL или нет.Но я не получаю желаемого результата.:)

SELECT town,
sum(taxi_co2) AS Taxi,
sum(bus_co2) AS Bus
FROM <table>
WHERE year == '2013'
GROUP BY town;

1 Ответ

1 голос
/ 01 апреля 2019
SELECT town,
      sum(taxi_co2)              as Taxi,
      sum(bus_co2)               as Bus,
      sum(taxi_co2)+sum(bus_co2) as Total
FROM <table>
WHERE year = '2013'
GROUP BY town;

Если сумма () для некоторого города может быть NULL, используйте NVL() для преобразования в 0:

nvl(sum(taxi_co2),0)+nvl(sum(bus_co2),0) as Total
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...