select mr.RECOMMEND,mr.SUBJECT_ID,mr.FROM_SCHOOL_ID,mr.COUNT from MRM_RESOURCES as mr group by mr.RECOMMEND order by mr.COUNT desc
消息 8120,级别 16,状态 1,第 1 行
选择列表中的列 'MRM_RESOURCES.SUBJECT_ID' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。看看我这条语句哪里又问题吗?我是想根据mr.RECOMMEND分组,根据mr.COUNT 排序 然后查出 mr.RECOMMEND,mr.SUBJECT_ID,mr.FROM_SCHOOL_ID,mr.COUNT

解决方案 »

  1.   

    sql基础问题。select语句如果后面有group by分组项,则出现在select子句中的东西要么是聚合函数,要么是group by的那几个字段。除此之外,error
      

  2.   

    for example:select count(name) cn,id,name from user where.....
    group by id,name这里的group by的是id和name 则select的字段必须包含id和name。
      

  3.   

    如果sql中出现了group by,则出现在select子句中的东西要么是聚合函数,要么是group by中的字段。
      

  4.   

    3L说的没错,基础问题
    所谓聚合函数就是想MAX,MIN,COUNT,SUM等一类的函数,而且不被聚合函数使用的字段,都要出现在group by中,不能单独group by某个字段,试想想,假如你的mr.COUNT相同的被分到一个组,那么mr.RECOMMEND,mr.SUBJECT_ID,mr.FROM_SCHOOL_ID该如何表示呢,合并还是合算还什么?那也该有个聚合函数啊。
      

  5.   

    正解。将select 的字段都添加在group后面就行了
      

  6.   

    select mr.RECOMMEND, max(mr.SUBJECT_ID),max(mr.FROM_SCHOOL_ID),max(mr.COUNT) from MRM_RESOURCES as mr group by mr.RECOMMEND order by mr.COUNT desc
    那我这样写也不行吗