mysql 子查询 COUNT 与 WHERE 子句混淆

巴特

我整天都在捣鼓按钮,但无法使这个查询起作用。我有 3 个表学生、课程和注册表,显示学生注册了哪些课程

该查询需要检索至少有 2 个学生注册的所有课程,这些课程按学生人数最多的课程排序

我想出了如何检索每个班级的注册人数,但无法将注册人数过滤为 >= 2 名学生

-- coursetable -----------------------------

CREATE TABLE StudentTable(
studentID VARCHAR(255) NOT NULL,
firstName VARCHAR(255) NOT NULL,
LastName VARCHAR(255) NOT NULL,
DOB DATE NULL,
CONSTRAINT pk_studentTable PRIMARY KEY(studentID)
);

-- coursetable -----------------------

 CREATE TABLE CourseTable(
 courseID VARCHAR(255) NOT NULL,
 courseName VARCHAR(255) NOT NULL,
 hoursPerWeek int(11) NULL,
 startDate DATE NULL,
 CONSTRAINT pk_courseTable PRIMARY KEY(courseID)
 );

-- enrolment table --

CREATE TABLE EnrolmentTable(
    studentID VARCHAR(255) NOT NULL,
    CourseID VARCHAR(255) NOT NULL,
CONSTRAINT pk_enrolmentTable PRIMARY KEY(studentID, CourseID)
);

这是我可以执行的查询,显示所有班级的注册情况,但它显示一个班级只有 1 名学生注册。我需要它只显示=> 2 个注册的课程

    SELECT ct.CourseName AS Course_Name, COUNT(st.studentID) AS Students_Enrolled
FROM EnrolmentTable et
INNER JOIN courseTable ct ON ct.courseID = et.courseID
INNER JOIN studentTable st ON st.studentID = et.studentID
GROUP BY et.courseID;

我需要使用子查询对吗?但不确定如何

卢库莫斯

您可以使用HAVING过滤结果

SELECT ct.CourseName AS Course_Name, COUNT(st.studentID) AS Students_Enrolled
FROM EnrolmentTable et
INNER JOIN courseTable ct ON ct.courseID = et.courseID
INNER JOIN studentTable st ON st.studentID = et.studentID
GROUP BY et.courseID
HAVING Students_Enrolled> 1
ORDER BY Students_Enrolled DESC

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL优化使用WHERE子句的子查询?

来自分类Dev

Mysql 查询 - 带有子查询结果的 where 子句

来自分类Dev

INNER JOIN与mysql中的max和where子句的子查询

来自分类Dev

子查询选择where子句

来自分类Dev

子查询选择where子句

来自分类Dev

限制WHERE子句中使用COUNT(*)函数作为子查询返回的行数

来自分类Dev

mysql选择Where(子查询)IN

来自分类Dev

mysql选择Where(子查询)IN

来自分类Dev

MySQL更新查询不带where子句和带where子句

来自分类Dev

MySQL:查询和COUNT BY的子句在哪里?

来自分类Dev

为什么我在MySQL中使用子查询别名在“ where子句”中获取“未知”列?

来自分类Dev

如何在MySQL的WHERE子句中使用子查询表别名

来自分类Dev

mysql-为什么在WHERE子句上使用此子查询?

来自分类Dev

为什么在MySQL中使用子查询别名在“ where子句”中获取“未知”列?

来自分类Dev

MYSQL - 在 UPDATE 语句的 WHERE 子句中对同一表的子查询

来自分类Dev

MySQL:当引用外部表的列时,在 JOIN 的子查询中使用 WHERE 子句会出错

来自分类Dev

我在子查询 MySQL 的 Where 子句中使用 NOT IN 和 IF 是否正确?

来自分类Dev

优化MySQL中的where子句查询

来自分类Dev

使用WHERE子句的MySQL LEFT JOIN查询

来自分类Dev

MySQL在where子句中选择查询

来自分类Dev

Mysql PHP查询中的组合where子句

来自分类Dev

MYSQL查询中的where子句冲突

来自分类Dev

MySQL查询问题:WHERE子句

来自分类Dev

WHERE 子句上的 MySQL 查询优化

来自分类Dev

MYSQL查询Where子句意外的结果

来自分类Dev

Mysql查询select sum where子句

来自分类Dev

MySQL子句中的子查询when子句

来自分类Dev

WHERE子句中的HIVE SQL子查询

来自分类Dev

Sequelize-where子句中的子查询

Related 相关文章

热门标签

归档