sql语句如下
select count(c.status_detail),b.title,b.act_code,a.submit_time,a.status
from mms_batch_log a, mms_batch_task b, mms_mt_report c
where b.sequence_id = '544249'
and a.task_id = b.sequence_id 
and a.message_id = c.messageid(+) 
and a.submit_time > '20100213' 
and a.submit_time < '20100214'
group by c.status_detail;报错说not group by expression
我觉得没有问题啊,求教

解决方案 »

  1.   

    select count(c.status_detail),b.title,b.act_code,a.submit_time,a.status 
    以上的需要分组
    group by c.status_detail,b.title,b.act_code,a.submit_time,a.status 
      

  2.   


    select count(c.status_detail),b.title,b.act_code,a.submit_time,a.status 
    from mms_batch_log a, mms_batch_task b, mms_mt_report c 
    where b.sequence_id = '544249' 
    and a.task_id = b.sequence_id 
    and a.message_id = c.messageid(+) 
    and a.submit_time > '20100213' 
    and a.submit_time < '20100214' 
    group by b.title,b.act_code,a.submit_time,a.status; 
      

  3.   

    地球人都知道:select 里面只能有函数和group by 里面的东西
      

  4.   

    可以用分析函数代替select count(c.status_detail)over(partition by c.status_detail order by 1),b.title,b.act_code,a.submit_time,a.status 
    from mms_batch_log a, mms_batch_task b, mms_mt_report c 
    where b.sequence_id = '544249' 
    and a.task_id = b.sequence_id 
    and a.message_id = c.messageid(+) 
    and a.submit_time > '20100213' 
    and a.submit_time < '20100214' 
      

  5.   

    这个太深奥了
    select 里面只能有函数和group by 里面的东西  这个是规定吗?
      

  6.   

    ORA-00979 not a GROUP BY expression  Cause The GROUP BY clause does not contain all the expressions in the SELECT clause. SELECT expressions that are not included in a group function, such as AVG, COUNT, MAX, MIN, SUM, STDDEV, or VARIANCE, must be listed in the GROUP BY clause.  
    Action Include in the GROUP BY clause all SELECT expressions that are not group function arguments. 
      

  7.   

    select count(c.status_detail),b.title,b.act_code,a.submit_time,a.status
    from mms_batch_log a, mms_batch_task b, mms_mt_report c
    where b.sequence_id = '544249'
    and a.task_id = b.sequence_id 
    and a.message_id = c.messageid(+) 
    and a.submit_time > '20100213' 
    and a.submit_time  < '20100214'
    group by b.title,b.act_code,a.submit_time,a.status
      

  8.   

    可以理解为:
    select后面跟的列必须在group by后面出现,但是不包括聚合函数,如:AVG, COUNT, MAX, MIN, SUM, STDDEV等