用sql语句统计学校已开设的课程门数
要用 SQL 语句统计学校已开设的课程门数,可以通过在课程表中计算不同的课程数量来实现。假设有两张表:学校
表和 课程
表,其中 课程
表包含了所有开设的课程信息,可以按照学校来统计不同学校已开设的课程门数。
示例 SQL 查询
假设 学校
表的结构如下:
sqlCREATE TABLE 学校 (
学校ID INT PRIMARY KEY,
学校名称 VARCHAR(100)
);
假设 课程
表的结构如下:
sqlCREATE TABLE 课程 (
课程ID INT PRIMARY KEY,
课程名称 VARCHAR(100),
学校ID INT, -- 外键参考学校表
FOREIGN KEY (学校ID) REFERENCES 学校(学校ID)
);
统计已开设的课程门数的 SQL 查询:
sqlSELECT
学校.学校名称,
COUNT(课程.课程ID) AS 开设课程数
FROM
学校
LEFT JOIN
课程 ON 学校.学校ID = 课程.学校ID
GROUP BY
学校.学校名称;
查询解释:
SELECT
子句:选择需要的列,这里选择了学校名称和开设课程数。FROM
子句:指定查询的表,从学校
表开始。LEFT JOIN
子句:通过学校ID将学校
表和课程
表连接起来。使用LEFT JOIN
确保即使某些学校没有开设课程,也会显示出来。GROUP BY
子句:按照学校名称进行分组,这样可以对每个学校统计开设的课程数。COUNT(课程.课程ID)
:使用COUNT
函数统计每个学校在课程
表中对应的课程数。
示例结果:
假设 学校
表中有两个学校记录:
学校ID | 学校名称 |
---|---|
1 | 学校A |
2 | 学校B |
假设 课程
表中有以下课程记录:
课程ID | 课程名称 | 学校ID |
---|---|---|
1 | 课程A | 1 |
2 | 课程B | 1 |
3 | 课程C | 2 |
4 | 课程D | 2 |
5 | 课程E | 2 |
运行上述 SQL 查询将得到以下结果:
学校名称 | 开设课程数 |
---|---|
学校A | 2 |
学校B | 3 |
这样就完成了统计每个学校已开设的课程门数的 SQL 查询。