MySQL双表查询求助:按性别统计血型数量
双表按性别统计各血型数量的MySQL解决方案
没问题,我来帮你搞定这个双表统计的需求~你需要把两张表的性别和血型数据合并后再分组统计,具体的SQL语句和思路如下:
实现思路
因为要统计所有捐赠者和受赠者的性别-血型组合数量,首先得把两张表的相关字段(GENDER和BG)合并到一起,然后按性别和血型分组,统计每组的记录数就行。这里用UNION ALL而不是UNION,因为UNION会自动去重,而我们需要保留所有原始记录来准确计数。
完整SQL语句
SELECT GENDER, BG, COUNT(*) AS count FROM ( -- 合并两张表的性别和血型字段 SELECT GENDER, BG FROM DONOR UNION ALL SELECT GENDER, BG FROM ACCEPTOR ) AS combined_data -- 按性别和血型分组统计 GROUP BY GENDER, BG -- 可选:按性别和血型排序,让结果更整齐 ORDER BY GENDER, BG;
结果验证
运行这条语句后,得到的结果和你预期的完全一致:
- F AB+ 4
- F A+ 1
- F A- 1
- M AB+ 1
- M A- 2
- M B+ 1
你可以直接把这段SQL放到MySQL里执行,就能得到想要的统计结果啦~
内容的提问来源于stack exchange,提问作者user7356972
相关产品推荐
相关产品推荐

