表名: tx_live 字段:day 日期;rtime 时间戳;country 国家;os 手机系统;version 版本;uid 用户id;request_live 接收到连麦请求时值为1;start_live 开始连麦时值为1;stop_live 结束连麦时值为1;buid 观众uid;只要出现请求/连麦/结束都会单独上报一条,不是合并上报 例如请求连麦时上报数据为: day = xx, rtime = xx,country =xx,os=xx,version=xx,uid=xx,request_live=1,start_live=null,stop_live=null,buid=xxx 2. 按上面的上报定义,编写hive sql 按天出报表 主播连麦人数,次数,连麦时长
时间: 2024-02-23 14:01:14 浏览: 131
LDA.rar_formatMatrix.m_matlab formatMatrix_rTime.m_狄利克雷_狄利克雷分布
以下是基于上报定义编写的Hive SQL语句:
```sql
SELECT
day,
uid AS anchor_uid,
COUNT(DISTINCT buid) AS connected_users,
COUNT(request_live) AS connection_attempts,
SUM(CASE WHEN start_live = 1 THEN stop_live - rtime ELSE 0 END) AS total_live_duration
FROM tx_live
WHERE request_live = 1 OR start_live = 1 OR stop_live = 1
GROUP BY day, uid
```
该查询语句会按天分组,统计每个主播的连麦人数、连麦次数、以及总连麦时长。其中,`COUNT(DISTINCT buid)`用于计算连麦人数,而`COUNT(request_live)`则用于计算连麦次数。最后,`SUM(CASE WHEN start_live = 1 THEN stop_live - rtime ELSE 0 END)`会根据开始/结束连麦的时间戳计算总连麦时长。
阅读全文