日期:2014-05-18  浏览次数:20563 次

选择列表中的列 '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分组的话,就是把子查询的结果再输出一遍