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

SQL筛选含交互5、10且无20的会话后按地区统计数量

SQL查询实现方案

核心思路

先按session+location分组筛选满足条件的会话,再按location分组统计对应会话数量即可。筛选会话的核心条件为:

  • 包含interaction=5的记录
  • 包含interaction=10的记录
  • 包含interaction=20的记录(注:你的问题描述里条件写反了,根据预期输出,实际要求是存在20而非不存在)

通用SQL实现(适配绝大多数数据库)

SELECT
  location,
  COUNT(DISTINCT session) AS count
FROM (
  -- 内层查询筛选符合条件的会话
  SELECT
    location,
    session
  FROM 你的表名 -- 替换为实际表名
  GROUP BY location, session
  HAVING
    SUM(CASE WHEN interaction = 5 THEN 1 ELSE 0 END) > 0
    AND SUM(CASE WHEN interaction = 10 THEN 1 ELSE 0 END) > 0
    AND SUM(CASE WHEN interaction = 20 THEN 1 ELSE 0 END) > 0
) AS valid_sessions
GROUP BY location;

实现逻辑说明

  1. 内层子查询按location和session分组,通过SUM+CASE的组合判断每个会话是否同时存在三个指定的交互值,只有三个判断结果都大于0的会话会被保留
  2. 外层查询基于内层筛选出的有效会话,按location分组统计每个地区的会话数量

按你提供的测试数据执行后,返回结果和你预期完全一致:

locationcount
us2
de1

fr的会话mno因为缺少interaction=20的记录,会被内层查询过滤,不会纳入统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:24:03