MySQL多表查询:统计每个职位关联的总申请数
获取每个职位的总申请数量SQL查询方案
正确的SQL查询语句
SELECT j.job_id, j.job_title, COUNT(a.app_id) AS total_no_applications FROM jobs j LEFT JOIN applications a ON j.job_id = a.job_id GROUP BY j.job_id, j.job_title ORDER BY j.job_id;
关键说明
- 使用
LEFT JOIN可确保所有职位(即使无申请记录)都能出现在结果中,无申请时total_no_applications会显示为0。 COUNT(a.app_id)精准统计每个职位的有效申请数,因为app_id是applications表的唯一标识,不会出现重复计数问题。- 按
job_id和job_title分组,保证每个职位的信息被聚合为单独一行。 - 避免使用
COUNT(DISTINCT j.job_id),这种写法会错误统计职位的出现次数(始终为1),而非实际申请数量。
内容的提问来源于stack exchange,提问作者Mohammed Moinuddin Waseem
相关产品推荐
相关产品推荐

