0

我想知道你们中的任何人会帮助我。我有一张class桌子

我的问题是如何计算当前正在运行的课程中有多少学生注册(即使他或她注册了许多课程,也只计算每个学生一次)。

提前致谢

4

2 回答 2

1

使用COUNT(DISTINCT StudentName)

 SELECT COUNT(DISTINCT StudentName)
 FROM TableName
 -- You can add a condition here to get only the classes that currently running
 -- like WHERE Date BETWEEN ....

更新:您可以加入另一个表以仅获取当前正在运行的课程:

SELECT COUNT(DISTINCT c.stuid)
FROM @Courses c
INNER JOIN @courseDetails cd 
        ON c.ClassID = cd.ClassID 
       AND c.EndrolledDate BETWEEN cd.StartDate AND cd.FinishDate

SQL 小提琴演示

于 2012-11-15T12:18:54.313 回答
0

尝试这个...

SELECT COUNT(DISTINCT COLUMN_NAME) FROM TABLE_NAME

这将计算表 TABLE_NAME 中名称为 COLUMN_NAME 的列中不同值的数量。

希望这个答案有帮助。

于 2012-11-15T12:23:08.533 回答