我正在尝试使用连接执行一个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;
答案 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)
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;