如何从SQL中的列中选择不同数量的值?
数据库包含注册表和学生表 注册表的列为:如何从SQL中的列中选择不同数量的值?,sql,sql-server,database,count,distinct,Sql,Sql Server,Database,Count,Distinct,数据库包含注册表和学生表 注册表的列为: CourseID, StudentID, CourseCode, Score, Year CourseCode列包含课程代码,如CS-101、MS-202。每个学生ID注册到许多课程。我需要找到参加3门以上课程的学生的姓名和ID 我试过: Select distinct CourseRegistrations.S_ID, Students.FirstName from Students, CourseRegistrations wh
CourseID, StudentID, CourseCode, Score, Year
CourseCode列包含课程代码,如CS-101、MS-202。每个学生ID注册到许多课程。我需要找到参加3门以上课程的学生的姓名和ID
我试过:
Select distinct
CourseRegistrations.S_ID, Students.FirstName
from
Students, CourseRegistrations
where
Students.StudentID = CourseRegistrations.StudentID
group by
CourseRegistrations.S_ID, Students.FirstName
having
count(distinct CourseRegistrations.CourseCode) > 3
但这将显示文件的所有记录。如果您使用GROUP BY,则不需要使用Distinct
不要使用老式连接
你应该试试:
Select CourseRegistrations.StudentID, count(CourseRegistrations.CourseCode)
from Students, CourseRegistrations
where Students.StudentID=CourseRegistrations.StudentID
GROUP BY CourseRegistrations.StudentID
having count(CourseRegistrations.CourseCode)>3
-20多年前,在ANSI-92 SQL标准中,旧样式的逗号分隔表列表样式被正确的ANSI连接语法所取代,不鼓励使用它
Select CourseRegistrations.StudentID, count(CourseRegistrations.CourseCode)
from Students, CourseRegistrations
where Students.StudentID=CourseRegistrations.StudentID
GROUP BY CourseRegistrations.StudentID
having count(CourseRegistrations.CourseCode)>3