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

如何无需使用聚合函数实现多种族学生数据合并去重?

无需聚合函数的多种族信息合并方案

可以用EXISTS子查询+DISTINCT的组合实现,完全不依赖聚合函数,代码示例如下:

SELECT DISTINCT
    s.Student_number,
    CASE
        WHEN EXISTS (
            SELECT 1
            FROM students sr2
            WHERE sr2.Student_number = s.Student_number
              AND sr2.racecd <> s.racecd
        ) THEN 'Multiracial'
        ELSE s.racecd
    END AS races
FROM students s

逻辑说明

  1. EXISTS子查询:针对每个学生,检查是否存在其他行的racecd和当前行不同——如果存在,说明该学生是多种族
  2. CASE语句:根据子查询结果,多种族返回Multiracial,单种族返回原racecd
  3. DISTINCT:去重后确保每个学生只显示一行结果

输出示例

Student_Number   races
5234             White
4343             Multiracial
4323             Asian

如果你的系统支持窗口函数,还可以用另一种写法(同样无聚合函数):

SELECT DISTINCT
    Student_number,
    CASE
        WHEN COUNT(*) OVER (PARTITION BY Student_number) > 1 THEN 'Multiracial'
        ELSE racecd
    END AS races
FROM students

不过窗口函数的兼容性可能不如EXISTS方案,优先推荐第一种。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:45:19