我有这样的代码,可以正常工作:

select count (CAST(faculty AS NVARCHAR(MAX))) as num
from student
group by CAST(faculty AS NVARCHAR(MAX))


faculty是文本。但是我需要计算一列中的教职员工数量,因此尝试了以下代码,该错误产生了错误:选择列表中的列“ student.faculty”无效,因为它既不包含在聚合函数中也不包含在GROUP BY子句中。

select faculty, count (CAST(faculty AS NVARCHAR(MAX))) as num
from student
group by CAST(faculty AS NVARCHAR(MAX))


我不明白问题出在哪里,因为相同的方法可以很好地处理数字。例如这个:

select id, count(id)
from student
group by id


我究竟做错了什么?

最佳答案

您收到错误消息是因为您没有按选择的分组。
CAST(faculty AS NVARCHAR(MAX))不等于faculty。为什么不使用:

select faculty, count (*) as num
from student
group by faculty

关于mysql - 错误:列无效,因为该列未包含在聚合函数或GROUP BY中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24312153/

10-08 22:05