使用连接的SQL查询:ORA-00979错误

时间:2017-08-05 10:15:05

标签: oracle

我正在尝试使用连接执行一个sql查询,但我收到以下错误:

ORA-00979: not a GROUP BY expression
00979. 00000 -  "not a GROUP BY expression"

查询是使用两个表来计算normalized_event_ids的数量以及错误消息和error_ids。:

select count(nee.normalised_event_id),
       em.error_message,
       em.error_message_id 
from normalised_event_error nee, error_message em 
where nee.charge_start_date >= to_date('01-07-2017','DD-MM-YYYY') 
and nee.error_message_id = em.error_message_id 
group by em.error_message;

3 个答案:

答案 0 :(得分:3)

  SELECT COUNT (nee.normalised_event_id), em.error_message, em.error_message_id
    FROM normalised_event_error nee
         INNER JOIN error_message em
            ON nee.error_message_id = em.error_message_id
   WHERE nee.charge_start_date >= TO_DATE ('01-07-2017', 'DD-MM-YYYY')
GROUP BY em.error_message, em.error_message_id;

选择列和按列分组必须相同才能进行分组。

答案 1 :(得分:2)

Example

You need to add error_message_id column to the group by clause:

SELECT COUNT(nee.normalised_event_id) as messages,
       em.error_message,
       em.error_message_id 
FROM normalised_event_error nee
    JOIN error_message em ON em.error_message_id = nee.error_message_id
WHERE nee.charge_start_date >= to_date('01-07-2017','DD-MM-YYYY') 
GROUP BY em.error_message, em.error_message_id;

答案 2 :(得分:1)

试试这个:

SELECT
    em.error_message,
    em.error_message_id, 
    count(nee.normalised_event_id) 
from normalised_event_error nee, 
     error_message em 
where nee.charge_start_date >= to_date('01-07-2017','DD-MM-YYYY') 
and nee.error_message_id = em.error_message_id 
group by em.error_message, em.error_message_id;