如何使用SQL语句计算不同专业男女人数?
时间: 2024-10-17 19:08:14 浏览: 40
SQL语句,统计出班级的男女人数
要使用SQL语句计算不同专业(假设存储在`Major`字段)的男女人数及其比例,你可以参考以下示例:
首先,假设我们有一个名为`JQ_Examinee_Info_Manage`的表,其中包含学生的班级(`Class`)、性别(`Examinee_Sex`)以及专业(`Major`)。我们可以编写以下SQL查询来统计每个专业的总人数、男生人数、女生人数以及各自的男女比例[^1]:
```sql
DECLARE @Major NVARCHAR(20) = '123'; -- 替换成你要查询的专业
SELECT
Major,
COUNT(DISTINCT Class) AS Total_Students,
SUM(CASE WHEN Examinee_Sex = '男' THEN 1 ELSE 0 END) AS Male_Students,
SUM(CASE WHEN Examinee_Sex = '女' THEN 1 ELSE 0 END) AS Female_Students,
-- 计算男女比例
CAST(SUM(CASE WHEN Examinee_Sex = '男' THEN 1 ELSE 0 END) AS FLOAT) / COUNT(DISTINCT Class) * 100 AS Male_Personality_Ratio,
CAST(SUM(CASE WHEN Examinee_Sex = '女' THEN 1 ELSE 0 END) AS FLOAT) / COUNT(DISTINCT Class) * 100 AS Female_Personality_Ratio
FROM
JQ_Examinee_Info_Manage
WHERE
Major = @Major
GROUP BY
Major;
```
这个查询会返回每个专业对应的详细信息,包括总人数、男性人数、女性人数以及男女人数占总人数的比例。
如果你只想针对单个名称(如"男"或"女"),可以参考第二个示例,它展示了如何单独计算特定性别(如男性)的数量:
```sql
SELECT
name,
COUNT(*) AS num
FROM
test
WHERE
name = '男'
GROUP BY
name;
```
这将只显示名字为"男"的学生数量。
阅读全文