假设活跃的定义是在某天内至少有一次登录行为,可以按照以下步骤编写Hive SQL:

  1. 创建用户登录日志表,包含用户id和登录时间字段。
CREATE TABLE user_login_log (
  user_id INT,
  login_time TIMESTAMP
)
  1. 计算某天内的登录时间范围。

假设要计算2021年5月1日的活跃用户数,可以使用以下代码:

SET start_time = '2021-05-01 00:00:00';
SET end_time = '2021-05-02 00:00:00';
  1. 使用WHERE子句过滤出在指定时间范围内的登录记录。
SELECT DISTINCT user_id
FROM user_login_log
WHERE login_time >= '${hiveconf:start_time}' AND login_time < '${hiveconf:end_time}'
  1. 统计查询结果的行数,即为活跃用户数。
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
手写hive SQL计算某天活跃的人数

原文地址: https://www.cveoy.top/t/topic/bSAm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录