微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

按不在选择中的字段分组

如何解决按不在选择中的字段分组

SELECT a.lecturerName, b.NumOfModules
FROM Lecturer a,(
SELECT l.lecturerID, COUNT(moduleID) AS NumOfModules
    FROM Lecturer l , Teaches t
    WHERE l.lecturerID = t.lecturerID
    AND year = 2011
    GROUP BY l.lecturerID) b
WHERE a.lecturerID = b.lecturerID

解决方法

我想查找一位讲师在特定年份教过多少个模块,并想要选择该讲师的姓名和该讲师的模块数。

问题在于,因为我正在选择Name,并且必须按名称对其进行分组才能使其正常工作。但是,如果有两个讲师姓名相同,该怎么办?然后,sql将使它们合而为一,这将是错误的输出。

因此,我真正想做的是选择,name但选择group by id,而sql不允许我这样做。有办法解决吗?

下表是:

Lecturer(lecturerID,lecturerName)
Teaches(lecturerID,moduleID,year)

到目前为止,这是我的查询:

SELECT l.lecturerName,COUNT(moduleID) AS NumOfModules
FROM Lecturer l,Teaches t
WHERE l.lecturerID = t.lecturerID
AND year = 2011
GROUP BY l.lecturerName --I want lectureID here,but it doesn't run if I do that

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。