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

查询intend_items表中存在重复产品的意向单数量

统计存在重复产品的意向单数量

要解决这个问题,我们需要找出所有至少有一款产品重复出现的意向单(Intend_no),然后统计这类意向单的总数量。结合你的示例数据,意向单0102/18里PC12和V13都重复了,所以最终结果应该是1。

方案一:使用GROUP BY + HAVING(推荐,高效通用)

这是最直接且高效的方法,先通过分组筛选出有重复产品的意向单,再对意向单去重计数:

SELECT COUNT(DISTINCT Intend_no) AS duplicate_intend_count
FROM (
    -- 子查询:找出每个意向单中重复出现的产品组合
    SELECT Intend_no, Product
    FROM intend_items
    GROUP BY Intend_no, Product
    HAVING COUNT(*) > 1 -- 筛选出现次数大于1的产品
) AS duplicated_product_records;

逻辑解释:

  1. 子查询部分:按Intend_no和Product组合分组,统计每个组合的出现次数。如果某个组合的次数>1,说明该意向单里这款产品重复了。
  2. 外层查询:对子查询返回的Intend_no去重后计数,得到存在重复产品的意向单总数。

方案二:使用EXISTS关联查询

如果你更倾向于用关联查询的方式,也可以用EXISTS来判断是否存在重复记录:

SELECT COUNT(DISTINCT ii1.Intend_no) AS duplicate_intend_count
FROM intend_items ii1
WHERE EXISTS (
    SELECT 1
    FROM intend_items ii2
    WHERE ii1.Intend_no = ii2.Intend_no
      AND ii1.Product = ii2.Product
      AND ii1.ROWID != ii2.ROWID -- 注意:不同数据库的行标识不同,比如MySQL用主键,SQL Server用特定行ID字段
);

逻辑解释:

对于表中的每一条记录,检查是否存在另一条同意向单、同产品但不同行的记录。如果存在,说明该意向单有重复产品,最后对符合条件的意向单去重计数。

结果验证

用你的示例数据测试,两个方案都会返回1,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:50:36