Sql server 用于检索结果而不重复的SQL查询
我有一个名为Schedule的表,其中包含名为TeacherName和ClassTakenDate的字段。表中的值如下所示:Sql server 用于检索结果而不重复的SQL查询,sql-server,Sql Server,我有一个名为Schedule的表,其中包含名为TeacherName和ClassTakenDate的字段。表中的值如下所示: TeacherName ClassTakenDate Anish 2011-10-01 Anish 2011-10-01 John 2011-10-01 John 2011-10-02 我想要这样的结果: TeacherName
TeacherName ClassTakenDate
Anish 2011-10-01
Anish 2011-10-01
John 2011-10-01
John 2011-10-02
我想要这样的结果:
TeacherName NoOfDays
Anish 1
John 2
我们如何做到这一点?
ClassTakenDate
不应该在SELECT
列表中,您需要GROUP BY foo.TeacherName
SELECT TeacherName,
COUNT(DISTINCT ClassTakenDate) AS NoOfDays
FROM Schedule
GROUP BY TeacherName
SELECT TeacherName, ClassTakenDate, COUNT( * ) AS NoOfDays
FROM (
SELECT DISTINCT TeacherName, ClassTakenDate
FROM Schedule
) AS foo
GROUP BY foo.ClassTakenDate