Hive統計當月和本季度的流量

2021-09-12 20:14:42 字數 2980 閱讀 9311

使用者 日期 流量

熊貓tv 2018-01-02 5

快手 2018-01-02 3

yy 2018-01-02 2

熊貓tv 2018-01-03 4

抖音 2018-01-02 15

快手 2018-01-03 3

yy 2018-01-03 1

抖音 2018-01-03 16

熊貓tv 2018-02-02 5

快手 2018-02-02 3

yy 2018-02-02 2

抖音 2018-02-02 15

熊貓tv 2018-02-03 4

快手 2018-02-03 3

yy 2018-02-03 1

抖音 2018-02-03 16

熊貓tv 2018-03-02 5

快手 2018-03-02 3

yy 2018-03-02 2

抖音 2018-03-02 15

熊貓tv 2018-03-03 4

快手 2018-03-03 3

yy 2018-03-03 1

抖音 2018-03-03 16

使用者 日期 月流量 總流量

熊貓tv 2018-01 100t 100t

熊貓tv 2018-02 200t 300t

熊貓tv 2018-03 100t 400t

匯入元資料

create table if not exists pandayy2(

name string,

time string,

traffic bigint

); row format delimited fields terminated by '\t'

load data local inpath ' ' overwrite into table pandayy2;

統計每個月總流量

create table `pandayy2_math_tmp`(

`name` string,

`time` string,

`traffic` bigint)

row format delimited

fields terminated by '\t'

insert into table pandayymathtotal select name,substr(time,1,7) as time,sum(traffic) from pandayy2 group by name,time ;

hive (ruoze_d5)> select * from pandayymathtotal;

okpandayymathtotal.name pandayymathtotal.time pandayymathtotal.sumtraffic

yy 2018-01 3

yy 2018-02 3

yy 2018-03 3

快手 2018-01 6

快手 2018-02 6

快手 2018-03 6

抖音 2018-01 31

抖音 2018-02 31

抖音 2018-03 31

熊貓tv 2018-01 9

熊貓tv 2018-02 9

熊貓tv 2018-03 9

time taken: 0.335 seconds, fetched: 12 row(s)

統計總流量(當月總流量包含前面幾個月的流量)

create table accesslogtraffic(

`name` string,

`time` string,

`sumtraffic` bigint)

row format delimited

fields terminated by '\t'

insert into table accesslogtraffic

select a.name,a.time,a.`traffic`,sum(b.`traffic`)as traffic from pandayy2_math_tmpa join pandayy2_math_tmpb where a.name=b.name and a.time>=b.time group by a.name,a.time,a.`traffic`

select * from accesslogtraffic;

okaccesslogtraffic.name accesslogtraffic.time accesslogtraffic.traffic accesslogtraffic.sumtraffic

yy 2018-01 3 3

yy 2018-02 3 6

yy 2018-03 3 9

快手 2018-01 6 6

快手 2018-02 6 12

快手 2018-03 6 18

抖音 2018-01 31 31

抖音 2018-02 31 62

抖音 2018-03 31 93

熊貓tv 2018-01 9 9

熊貓tv 2018-02 9 18

熊貓tv 2018-03 9 27

time taken: 0.709 seconds, fetched: 12 row(s)

報錯
在執行join 操作的時候報錯:failed: execution error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.mapredlocaltask
最終解決:
set hive.auto.convert.join=false;

時間的查詢,比如本月,本年,本季度(mysql)

mysql查詢本季度 今天 select from ticket order detail where to days use time to days now 7天 select from ticket order detail where date sub curdate interval 7 ...

MySql查詢當天 本週 本月 本季度 本年的資料

select from 表名 where to days 時間欄位名 to days now select from 表名 where to days now to days 時間欄位名 1 select from 表名 where yearweek date format 時間欄位名,y m d ...

MySql查詢當天 本週 本月 本季度 本年的資料

一 建立測試資料 二 sql查詢及示例 1.今天 select from 表名 where to days 時間欄位名 to days now select from demo s where to days s.create time to days now 2.昨天 select from 表名...