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

如何用SQL分别统计数据库中同一列内男女两个值的数量?

分别统计男女人数的SQL方法

方法一:按性别分组统计(返回两行结果)

这是最直观的方式,通过GROUP BY将相同性别的数据分组,再用COUNT()统计每组的人数:

SELECT spol AS 性别, count(id_osb) AS 人数
FROM ds_osebe
WHERE spol IN ('M', 'Z')
GROUP BY spol;

说明:

  • WHERE spol IN ('M', 'Z') 和你原来的OR逻辑等价,但写法更简洁
  • GROUP BY spol会把性别相同的记录归为一组
  • 最终结果会返回两行,分别展示男性('M')和女性('Z')的人数

方法二:条件聚合(返回一行两列结果)

如果希望把男女人数放在同一行的两个列里,可以用条件聚合的方式:

SELECT 
  COUNT(CASE WHEN spol = 'M' THEN id_osb END) AS 男性人数,
  COUNT(CASE WHEN spol = 'Z' THEN id_osb END) AS 女性人数
FROM ds_osebe
WHERE spol IN ('M', 'Z');

说明:

  • CASE语句会判断每条记录的性别,符合条件时返回id_osb,否则返回NULL
  • COUNT()函数会自动忽略NULL值,从而分别统计出男女的人数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 12:27:51