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

Oracle SQL合并多种族学生行:显示为Two or more Races

合并多种族学生记录的解决方案

在Oracle SQL中直接实现

你可以通过分组聚合加条件判断的方式,直接在SQL里完成合并,不需要额外工具。示例语句如下:

SELECT 
    student_number,
    CASE 
        WHEN COUNT(*) > 1 THEN 'Two or more Races'
        ELSE MAX(race)
    END AS race
FROM 
    你的学生表名
GROUP BY 
    student_number;

语句说明:

  • 按student_number分组,统计每个学生对应的种族记录条数
  • 如果条数大于1,就显示Two or more Races;只有一条记录时,直接返回该种族值
  • MAX(race)在这里只是用来取唯一的种族值,因为单种族的分组里只有一条记录,用MIN或者调整GROUP BY逻辑后直接用race也可以

如果需要同时保留所有种族的明细,还可以加上拼接字段:

SELECT 
    student_number,
    CASE 
        WHEN COUNT(*) > 1 THEN 'Two or more Races'
        ELSE MAX(race)
    END AS consolidated_race,
    LISTAGG(race, ', ') WITHIN GROUP (ORDER BY race) AS all_race_details
FROM 
    你的学生表名
GROUP BY 
    student_number;

选择SQL还是Python?

  • 优先用Oracle SQL:如果只是单纯合并记录,直接在数据库端处理效率更高,不用导出数据,还能直接嵌入到现有查询或报表流程中
  • 适合用Python的场景:如果后续要对数据做复杂分析、可视化,或者数据已经在Python环境(比如Pandas)里,用Python处理会更灵活

内容的提问来源于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.30 23:06:32