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

如何统计拥有多个唯一bd_fk的exp_fk的数量?

解决方案

你的需求是统计拥有多于1个唯一bd_fk的exp_fk的数量,原SQL的问题在于同时按exp_fk和bd_fk分组,且判断的是单个bd_fk的重复次数,完全偏离了需求方向。

正确的实现思路分两步:

  • 第一步:按exp_fk分组,计算每个exp_fk对应的非空唯一bd_fk数量
  • 第二步:统计上述结果中数量大于1的exp_fk的总个数

对应的SQL语句如下:

SELECT COUNT(*) AS target_count
FROM (
    SELECT exp_fk
    FROM your_table_name
    WHERE bd_fk IS NOT NULL
    GROUP BY exp_fk
    HAVING COUNT(DISTINCT bd_fk) > 1
) AS sub_query;

语句说明:

  • 子查询部分:先过滤掉bd_fk为空的记录,再按exp_fk分组,用COUNT(DISTINCT bd_fk)统计每个exp_fk关联的唯一bd_fk数量,最后通过HAVING筛选出数量大于1的exp_fk
  • 外层查询:统计子查询返回的行数,就是符合要求的exp_fk的数量,对应示例中的预期结果1

如果需要查看具体是哪些exp_fk满足条件,直接查询子查询的内容即可:

SELECT exp_fk, COUNT(DISTINCT bd_fk) AS unique_bd_count
FROM your_table_name
WHERE bd_fk IS NOT NULL
GROUP BY exp_fk
HAVING COUNT(DISTINCT bd_fk) > 1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:43:17