You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks Delta Lake SQL按日期统计单行列示活跃与非活跃用户数问题

错误原因

你的查询存在两个核心问题:

  1. 子查询缺少与外层分组日期的关联条件:内层统计活跃/非活跃用户的子查询没有限定统计范围等于外层当前分组的日期,会直接统计全表所有日期下的符合条件的用户数,而非对应日期的数值。
  2. 子查询添加了不必要的group by date:会返回多个日期的统计结果,外层查询无法匹配到对应日期的数值,最终所有行取到的都是全局汇总的结果,所以出现所有行Active都是3、Inactive都是1的问题。
    另外注意你子查询中用的表名是User,实际存储数据的表是UsersData,要统一表名避免执行报错。
正确查询语句(Databricks Delta Lake SQL 环境兼容)

推荐使用效率更高的条件聚合写法,无需嵌套子查询即可实现需求:

SELECT
  Date,
  COUNT(DISTINCT CASE WHEN isActive = 1 THEN UserID END) AS Active,
  COUNT(DISTINCT CASE WHEN isActive = 0 THEN UserID END) AS Inactive,
  COUNT(DISTINCT UserID) AS Total
FROM UsersData
GROUP BY Date
ORDER BY Date

逻辑说明:CASE WHEN会对不符合状态条件的行返回NULL,COUNT(DISTINCT)统计时会自动忽略NULL值,即可实现按日期分组统计对应状态的去重用户数,和你预期的输出结果完全一致。

内容的提问来源于stack exchange,提问作者Mr.Human

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 22:45:04