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

如何用SQL查询仅拥有1个CA账户和1个SA账户的LINK_USER_ID

需求说明

  • 目标:编写SQL查询,筛选出仅拥有1个CA账户和1个SA账户的LINK_USER_ID
  • 排除对象:
    • 拥有2个CA账户+1个SA账户的用户
    • 仅拥有1个CA账户的用户
    • 仅拥有1个SA账户的用户
    • 存在CA、SA以外其他账户类型(如MC)的用户
  • 注意:单个LINK_USER_ID可关联多个LINK_CIS_NO

样本数据

LINK_ODDS_NOLINK_ACCT_NOLINK_USER_IDLINK_CIS_NOLINK_ACCT_TYPE
1247706483180879599940991349823236463CA
1247706493180879599941991349823236464SA
1247706503180879599942991349813236465CA
1247706513180879599943991349813236466SA
1247706523180879599944991349843236455MC
1247706533180879599945991349843236478CA
12477065431808795999469913498532364688CA
1247706553180879599947991349853236556SA
1247706563180879599948991349863244879SA

预期结果

LINK_USER_ID
99134982

SQL查询方案

方案一:基础统计版

适用于无重复账户记录的场景,直接统计账户类型的出现次数:

SELECT LINK_USER_ID
FROM your_table_name
GROUP BY LINK_USER_ID
HAVING 
    SUM(CASE WHEN LINK_ACCT_TYPE = 'CA' THEN 1 ELSE 0 END) = 1
    AND SUM(CASE WHEN LINK_ACCT_TYPE = 'SA' THEN 1 ELSE 0 END) = 1
    AND SUM(CASE WHEN LINK_ACCT_TYPE NOT IN ('CA', 'SA') THEN 1 ELSE 0 END) = 0;

方案二:去重账户版

如果存在同一账户重复记录的情况,用DISTINCT LINK_ACCT_NO确保统计的是不同账户:

SELECT LINK_USER_ID
FROM your_table_name
GROUP BY LINK_USER_ID
HAVING 
    COUNT(DISTINCT CASE WHEN LINK_ACCT_TYPE = 'CA' THEN LINK_ACCT_NO END) = 1
    AND COUNT(DISTINCT CASE WHEN LINK_ACCT_TYPE = 'SA' THEN LINK_ACCT_NO END) = 1
    AND COUNT(DISTINCT CASE WHEN LINK_ACCT_TYPE NOT IN ('CA', 'SA') THEN LINK_ACCT_NO END) = 0;

说明

  • 替换your_table_name为实际表名
  • 两个方案的核心逻辑一致:同时满足CA账户数=1、SA账户数=1、无其他类型账户三个条件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:55:39