手写hive SQL计算某天活跃的人数
假设活跃的定义是在某天内至少有一次登录行为,可以按照以下步骤编写Hive SQL:
- 创建用户登录日志表,包含用户id和登录时间字段。
CREATE TABLE user_login_log (
user_id INT,
login_time TIMESTAMP
)
- 计算某天内的登录时间范围。
假设要计算2021年5月1日的活跃用户数,可以使用以下代码:
SET start_time = '2021-05-01 00:00:00';
SET end_time = '2021-05-02 00:00:00';
- 使用WHERE子句过滤出在指定时间范围内的登录记录。
SELECT DISTINCT user_id
FROM user_login_log
WHERE login_time >= '${hiveconf:start_time}' AND login_time < '${hiveconf:end_time}'
- 统计查询结果的行数,即为活跃用户数。
SELECT COUNT(*)
FROM (
SELECT DISTINCT user_id
FROM user_login_log
WHERE login_time >= '${hiveconf:start_time}' AND login_time < '${hiveconf:end_time}'
) active_users
原文地址: https://www.cveoy.top/t/topic/bSAm 著作权归作者所有。请勿转载和采集!