一直报不是group by 表达式

解决方案 »

  1.   

    组函数count以外的字段,全部要在group by子句中
      

  2.   

    你要先看看group by 的用法啊,查询字段除有函数之外的都要在group by 后面
      

  3.   

    这。。这么难搞啊。。我看别的类似的程序没有将count以外的字段全加进去啊
      

  4.   

    count以外,无论ab
      

  5.   

    select 中的那些非聚合字段,都要写到 group by 中;PS:mysql 据说可以不写,但是得到的数据不稳定 ;
      

  6.   

    可是全group by的话,原先的数据结构就改变了
      

  7.   

     可是全group by的话,原先的数据结构就改变了 
      

  8.   

    第一个字段就错了,b.id改成a.id,还有除了count(a.docno)其他的字段都要放到group by里
      

  9.   

    你 group by a.id 一下的目的是什么呢?
      

  10.   

    不是,那个只是个样式。如果真的要全加的话,原先没有groupby过的数据的结构就变了。。
      

  11.   

    不应该是1,1的,应该是4,2,docno就是单据编号,我的count(a.docno)对应的就是笔数
      

  12.   


    你这个是怎么分组的,按什么条件分组,Group By 一下不就好了,你这个贴出来的,如果只有笔数跟单据编号,
    直接Select Count(1),单据编号 From Table Group by 单据编号;
    这样就好了,如果后面还有其他字段,在单据编号后面添加:
    Select Count(1),单据编号,Colunm1,Colunm2,Colunm3.... From Table Group by 单据编号,Colunm1,Colunm2,Colunm3....;
      

  13.   

    可以做子查询来满足需求select a.docno
    ..
    from ..              --你原查询语句
    (select docno, count(docno) from m_retail group by docno) tt        --加子查询
    where  a.docno =tt.docno                                   --通过docno来关联
      

  14.   

    还是看看group by 的用法吧
      

  15.   

    除了 mysql 外,我见过的数据库在使用 group by 子句时,在 select 后面有要求:
    要么出现的字段是 group by 后面的
    要么这些字段是被聚集函数(count、max、min、avg)计算出来的结果
      

  16.   

    1、全部写进group by里面
    2、必须条件group by,放在子查询里面,然后再关联
    3、count() over(partition by ) 具体语法找度娘
      

  17.   

    正规的Sql语法:聚合函数之外的所有字段必须全部在gp后面。。
    mysql数据库除外,
      

  18.   

    语法不对,必须把你select后面的字段都加入 groupby 后面
      

  19.   

    就不管group by什么你至少得select 出来吧,你group by a.id  你就select a.id啊
      

  20.   

    也许你过去用的是MYSQL的数据库吧,在MYSQL里这个是可以的。但是ORACLE不行,GROUP BY后的字段,SELECT后的字段,必须要在GROUP BY后出现,除非是统计函数。
      

  21.   

    除了组函数count里面以外的字段,全部要在group by子句中 这是必要条件
      

  22.   

    你要先看看group by 的用法啊,查询字段除有函数之外的都要在group by 后面