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

是否可以使用GROUP BY合并两条统计各客户类型男女数量的SQL语句?

可以实现,用条件聚合的写法就能单条SQL拿到你要的结果,无需拆分两次查询再做关联,执行效率也更高。

实现语句

SELECT 
    client_type,
    COUNT(CASE WHEN gender = 'Male' THEN 1 END) AS num_males,
    COUNT(CASE WHEN gender = 'Female' THEN 1 END) AS num_females
FROM clients
GROUP BY client_type;

原理解释

  • COUNT函数仅统计非空值,当行数据的gender不符合对应条件时,CASE WHEN会返回NULL,不会被计入统计结果,刚好实现分性别计数的需求。
  • 如果你使用的是支持IF函数的数据库(比如MySQL),也可以用更简化的写法:
SELECT 
    client_type,
    COUNT(IF(gender = 'Male', 1, NULL)) AS num_males,
    COUNT(IF(gender = 'Female', 1, NULL)) AS num_females
FROM clients
GROUP BY client_type;
  • 如果需要将无对应性别客户的统计值显示为0而非NULL,可以搭配COALESCE函数处理:COALESCE(COUNT(CASE WHEN gender = 'Male' THEN 1 END), 0) AS num_males

内容的提问来源于stack exchange,提问作者C-W-M-Oliver8012

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:54:05