用sql语句统计学校已开设的课程门数

要用 SQL 语句统计学校已开设的课程门数,可以通过在课程表中计算不同的课程数量来实现。假设有两张表:学校 表和 课程 表,其中 课程 表包含了所有开设的课程信息,可以按照学校来统计不同学校已开设的课程门数。

示例 SQL 查询

假设 学校 表的结构如下:

sql
CREATE TABLE 学校 ( 学校ID INT PRIMARY KEY, 学校名称 VARCHAR(100) );

假设 课程 表的结构如下:

sql
CREATE TABLE 课程 ( 课程ID INT PRIMARY KEY, 课程名称 VARCHAR(100), 学校ID INT, -- 外键参考学校表 FOREIGN KEY (学校ID) REFERENCES 学校(学校ID) );

统计已开设的课程门数的 SQL 查询:

sql
SELECT 学校.学校名称, COUNT(课程.课程ID) AS 开设课程数 FROM 学校 LEFT JOIN 课程 ON 学校.学校ID = 课程.学校ID GROUP BY 学校.学校名称;

查询解释:

  1. SELECT 子句:选择需要的列,这里选择了学校名称和开设课程数。

  2. FROM 子句:指定查询的表,从 学校 表开始。

  3. LEFT JOIN 子句:通过学校ID将 学校 表和 课程 表连接起来。使用 LEFT JOIN 确保即使某些学校没有开设课程,也会显示出来。

  4. GROUP BY 子句:按照学校名称进行分组,这样可以对每个学校统计开设的课程数。

  5. COUNT(课程.课程ID):使用 COUNT 函数统计每个学校在 课程 表中对应的课程数。

示例结果:

假设 学校 表中有两个学校记录:

学校ID学校名称
1学校A
2学校B

假设 课程 表中有以下课程记录:

课程ID课程名称学校ID
1课程A1
2课程B1
3课程C2
4课程D2
5课程E2

运行上述 SQL 查询将得到以下结果:

学校名称开设课程数
学校A2
学校B3

这样就完成了统计每个学校已开设的课程门数的 SQL 查询。