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

SQL技术问询:统计满足时间戳前缀+多值条件的用户组数量

统计符合特定条件的用户数量解决方案

需求说明

需要统计同时满足以下两个条件的用户总数:

  • 该用户的所有记录中,timestamp(示例中为timestp)字段均包含指定起始子串
  • 该用户的isCondition(示例中为isCond)字段存在至少2个不同的值

示例数据

先创建测试表并插入示例数据:

CREATE TABLE test (
  user varchar(255),
  timestp varchar(255),
  isCond int
);
INSERT INTO test (user, timestp, isCond) VALUES ("user1", "2024-02-08-11", 0);
INSERT INTO test (user, timestp, isCond) VALUES ("user1", "2024-02-08-12", 1);
INSERT INTO test (user, timestp, isCond) VALUES ("user2", "2024-02-08-13", 0);
INSERT INTO test (user, timestp, isCond) VALUES ("user2", "2024-02-08-12", 0);

在这个示例中,只有user1符合条件,所以预期结果为1;若user2的两条记录isCond值不同,结果则为2。

解决方案

你当前的查询会返回每个符合条件用户的isCond去重计数,要统计这些用户的总数,只需将原查询作为子查询,外层用COUNT(*)统计行数即可:

SELECT COUNT(*) AS qualified_users
FROM (
    SELECT user
    FROM test
    WHERE timestp LIKE "2024-02-08%"
    GROUP BY user
    HAVING COUNT(DISTINCT isCond) >= 2
) AS sub;

逻辑说明

  1. 子查询部分:按user分组,筛选出timestp匹配指定前缀,且isCond去重后数量≥2的用户
  2. 外层查询:统计子查询返回的用户数量,即为符合条件的用户总数

内容的提问来源于stack exchange,提问作者btrballin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 12:23:37