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

汽车盗窃案涉事男女数量统计SQL查询未被接收,求修正

统计汽车盗窃案男女嫌疑人数量的正确SQL写法

原语句的问题

你的SQL存在逻辑错误:

  • 按name和sex分组会拆分到单个嫌疑人,无法得到性别维度的汇总结果
  • 多余选择name、crime_type字段,与汇总统计的目标冲突

正确写法(两种可选)

写法1:按性别分组,分别统计数量

这是最直观的统计方式,结果按性别分行展示:

SELECT 
    s.sex,
    COUNT(DISTINCT s.name) AS suspect_count
FROM SUSPECTS s
JOIN CRIMES c ON s.suspect_id = c.suspect_id -- 显式关联字段比NATURAL JOIN更安全
WHERE c.crime_type = 'Car Theft'
GROUP BY s.sex;

说明:如果同一嫌疑人不会重复出现在表中,可简化为COUNT(*);若存在重复记录,用COUNT(DISTINCT s.name)避免重复计数

写法2:一行展示男女数量(行转列)

如果需要将男女统计结果放在同一行,使用条件聚合:

SELECT
    COUNT(CASE WHEN s.sex = 'Male' THEN 1 END) AS male_cnt,
    COUNT(CASE WHEN s.sex = 'Female' THEN 1 END) AS female_cnt
FROM SUSPECTS s
JOIN CRIMES c ON s.suspect_id = c.suspect_id
WHERE c.crime_type = 'Car Theft';

说明:若需去重,将COUNT(...)替换为COUNT(DISTINCT CASE WHEN s.sex = 'Male' THEN s.name END)即可


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:50:25