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

技术问询:查询与多名不同对象育有子女的人员名单

查询与多名不同对象育有子女的人员名单

要解决这个问题,我们需要找出那些作为父亲或母亲,与至少两名不同伴侣共同生育子女的人员。下面是具体的思路和SQL实现方案:

核心思路

问题的关键在于统计每个人员(作为父/母身份)对应的不同伴侣数量:

  • 从每条子女记录中,分别提取父亲与母亲的配对关系
  • 对每个人员,统计其关联的不同伴侣数量,筛选出数量≥2的人员

SQL查询实现

假设你的数据表名为family_records,以下是通用的SQL语句:

WITH parent_partner_pairs AS (
    -- 提取所有父亲对应的母亲伴侣
    SELECT 
        "Father ID" AS parent_id,
        "Mother ID" AS partner_id
    FROM family_records
    WHERE "Father ID" IS NOT NULL AND "Mother ID" IS NOT NULL
    
    UNION
    
    -- 提取所有母亲对应的父亲伴侣
    SELECT 
        "Mother ID" AS parent_id,
        "Father ID" AS partner_id
    FROM family_records
    WHERE "Father ID" IS NOT NULL AND "Mother ID" IS NOT NULL
),
partner_count_summary AS (
    SELECT 
        parent_id,
        COUNT(DISTINCT partner_id) AS unique_partner_count
    FROM parent_partner_pairs
    GROUP BY parent_id
    HAVING COUNT(DISTINCT partner_id) >= 2
)
SELECT 
    fr.ID,
    fr.NAME
FROM family_records fr
JOIN partner_count_summary pcs ON fr.ID = pcs.parent_id
GROUP BY fr.ID, fr.NAME;

针对示例数据的验证

用你提供的示例数据运行这个查询:

  1. 第一步的parent_partner_pairs会生成所有父-母、母-父的配对关系(自动去重重复配对)
  2. 统计后会发现:
    • ID为1的Paul,对应的伴侣是ID2(Debbie)和ID3(Jessie),共2名不同伴侣
    • 其他人员的伴侣数量都为1
  3. 最终查询结果会返回Paul的ID和姓名,完全符合预期需求

补充说明

  • 使用UNION而非UNION ALL:避免父-母和母-父的重复配对被多次统计
  • COUNT(DISTINCT partner_id):确保统计的是不同的伴侣,而非子女数量
  • 过滤非空父母ID:排除那些本身没有父母记录的人员(比如示例中的Paul、Debbie等自身的记录)

内容的提问来源于stack exchange,提问作者T.Tolley

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:53:55