SQL实现医院各职业平均薪资计算失败,求解决方案
解决医院各职业平均薪资统计问题
你的SQL语句存在两个核心问题:
- 使用了
COUNT(salaire),这是统计该职业的薪资记录条数,而非计算平均值,应该用AVG(salaire) - 缺少
GROUP BY profession子句,无法按职业分组计算,所以只能返回一条不完整的结果
正确的SQL语句
SELECT profession, ROUND(AVG(salaire), 2) AS `salaire moyen` FROM personnel GROUP BY profession ORDER BY `salaire moyen`;
语句说明
AVG(salaire):计算每个职业的薪资平均值ROUND(..., 2):将平均值保留两位小数,匹配你想要的结果格式GROUP BY profession:按职业字段分组,确保每个职业单独计算平均值ORDER BY:可选,按平均薪资排序,和目标结果的顺序一致
执行这条语句后,就能得到你期望的各职业平均薪资结果:
+---------------+---------------+ | profession | salaire moyen | +---------------+---------------+ | secretaire | 1300.00 | | aide soignant | 1400.00 | | infirmier | 1505.00 | | psychologue | 1700.00 | | medecin | 1966.67 | +---------------+---------------+
内容的提问来源于stack exchange,提问作者Samir Kanoun
相关产品推荐
相关产品推荐

