hive高频面试题1.6统计两个人的通话总时长

有如下通话记录:
呼叫		被叫	  时长
goudan haoge 01:01:01
goudan mazi 00:11:21
goudan laowang 00:19:01
goudan Jingba 00:21:01
goudan weige 01:31:17
haoge mazi 00:51:01
haoge mazi 01:11:19
haoge laowang 00:00:21
haoge laowang 00:23:01
laowang mazi 01:18:01
laowang weige 00:18:00
Jingba haoge 00:01:01
Jingba haoge 00:00:06
Jingba haoge 00:02:04
Jingba haoge 00:02:54
haoge laowang 01:00:13
haoge laowang 00:01:01
haoge goudan 00:01:01

使用hql统计两个人的通话总时长(用户之间互相通话的时长,时长单位使用分钟)?

1.需要把时间进行切割,切割完后的形式是分钟

int(split(times,':')[0] * 60+split(times,':')[1]+if(split(times,':')[2]=0,0,1))

2.需要让 A B和B A都转换成B A的形式进行统计

case when hj>=bj then hj else bj end hj
case when hj>=bj then bj else hj end bj

3.求解

select 
hj,
bj,
sum(time_1)
from
(
select
case when hj>=bj then hj else bj end hj,
case when hj>=bj then bj else hj end bj,
int(split(times,':')[0] * 60+split(times,':')[1]+if(split(times,':')[2]=0,0,1)) time_1
from callphone) call
group by hj,bj

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值