Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从SQL中的列中选择不同数量的值?_Sql_Sql Server_Database_Count_Distinct - Fatal编程技术网

如何从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