读书人

抉择列表中的列 #039;num_slot.time_slot_

发布时间: 2012-08-10 12:19:33 作者: rapoo

选择列表中的列 'num_slot.time_slot_id' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
select time_slot_id, MAX(student_num) as max_num
from (select COUNT(takes.ID)as student_num, time_slot_id
from takes, section
where takes.course_id=section.course_id
group by time_slot_id) as num_slot(student_num, time_slot_id);

刚学SQL的菜鸟,这地方老报错,不知道为什么,求各位大神解释

[解决办法]
如果select里面没有用max、sum、count、min、avg这些的列,都要在group by中出现,另外,其实sql语句的执行顺序不是你写代码的顺序,是先group by 再select的,如果group by中都没有出现这列,select的时候肯定报错。
[解决办法]

探讨
这样改的话就不是不是我要的查询结果了,我只要student_num最大的那个元组就行了,如果按再按time_slot_id分组的话,就是把子查询的结果再输出一遍

读书人网 >SQL Server

热点推荐