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

Oracle SQL:如何用Case语句将B类性别计数拆分至M、F类别

实现方案

没问题,这里给你一个用CASE语句实现需求的SQL方案,刚好能满足把双性(B)的计数分别加到男性(M)和女性(F)统计里的要求:

SELECT
    Name,
    'M' AS Gender,
    SUM(CASE 
        WHEN Gender = 'M' THEN `Count(Gender)`
        WHEN Gender = 'B' THEN `Count(Gender)`
        ELSE 0
    END) AS `Count(Gender)`
FROM your_table_name
GROUP BY Name

UNION ALL

SELECT
    Name,
    'F' AS Gender,
    SUM(CASE 
        WHEN Gender = 'F' THEN `Count(Gender)`
        WHEN Gender = 'B' THEN `Count(Gender)`
        ELSE 0
    END) AS `Count(Gender)`
FROM your_table_name
GROUP BY Name

UNION ALL

SELECT
    Name,
    'N' AS Gender,
    SUM(`Count(Gender)`) AS `Count(Gender)`
FROM your_table_name
WHERE Gender = 'N'
GROUP BY Name
ORDER BY Gender;

代码说明:

  • 统计男性(M)总数:通过CASE语句,把原表中性别为M的计数,加上性别为B的计数,得到最终的男性统计数。
  • 统计女性(F)总数:和男性逻辑一致,用CASE把原表中F和B的计数相加。
  • 统计未指定(N)总数:直接筛选出性别为N的记录求和即可,无需额外处理。
  • 最后用UNION ALL将三个分组统计的结果合并,并按性别排序,就能得到你需要的最终结果表。

注意:记得把代码里的your_table_name替换成你实际使用的数据表名称哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:27:28