Sql查询帮助计算没有行数

时间:2012-11-15 12:14:12

标签: sql-server

我想你们中的任何人都会帮助我。我有一个class

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

提前致谢

2 个答案:

答案 0 :(得分: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 Fiddle Demo

答案 1 :(得分:0)

试试这个......

SELECT COUNT(DISTINCT COLUMN_NAME) FROM TABLE_NAME

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

希望这个答案很有帮助。