我是一个蜂巢新手,对我来说这看起来很棘手。任何帮助将不胜感激。我们在状态方面有事故数据,我们有月度和年度的事故统计数据。
我们如何以状态方式对数据进行分组,总结所有月份的事故数量并获得总计12年的数据。输出应为州名,Acciden类型:事故类型为“道路交通事故”,“铁路事故”,“其他铁路事故”
我们创建了下表和data can be found here
create table accidents_data(STATE string,Year string,AcciddentType string,JANUARY int,FEBRUARY int,MARCH int ,APRIL int,MAY int,JUNE int,JULY int,AUGUST int,SEPTEMBER int,OCTOBER int,NOVEMBER int,DECEMBER int)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
答案 0 :(得分:0)
正如我在数据中看到的那样,您错过了Hive架构中的最后一列“TOTAL”。如果该列存在,那么以下查询将完成您的工作。
select STATE, AcciddentType, sum(TOTAL) as GrandTotal
where AcciddentType!='Total'
group by STATE, AcciddentType;
更新: 如果您在Hive架构中没有最后一列“TOTAL”,那么以下查询将起作用:
select STATE, AcciddentType, (
sum(JANUARY) +
sum(FEBRUARY) +
sum(MARCH) +
sum(APRIL) +
sum(MAY) +
sum(JUNE) +
sum(JULY) +
sum(AUGUST) +
sum(SEPTEMBER) +
sum(OCTOBER) +
sum(NOVEMBER) +
sum(DECEMBER)
) as GrandTotal
where AcciddentType!='Total'
group by STATE, AcciddentType;