尝试运行查询以不拉回重复的行。目前,在运行此脚本时,我从Oracle收到一条错误消息,说
“ ORA-00979:不是GROUP BY表达式”
试图删除不同的选择行。
SELECT QUEUE_NAME, ITEMS_IN_QUEUE, CREATION_USR_ID
FROM IN_WF_QUEUE B
INNER JOIN IN_WF_ITEM A
ON A.QUEUE_ID = B.QUEUE_ID
AND B.QUEUE_NAME LIKE '__________ %'
AND (A.QUEUE_START_TIME < (select sysdate from DUAL)-1000)
GROUP BY B.QUEUE_ID;
在此问题上,谢谢您的帮助。
答案 0 :(得分:2)
如果要删除重复项,为什么不使用DISTINCT
?这比使用没有任何聚合的GROUP BY
更自然。
SELECT DISTINCT
queue_name, items_in_queue, creation_usr_id
FROM in_wf_queue b
INNER JOIN in_wf_item A
ON A.queue_id = b.queue_id
AND b.queue_name LIKE '__________ %'
AND A.queue_start_time < sysdate - 1000;
此外,也无需从双重选择SYSDATE
;如我的示例所示,它是可以独立使用的功能。请注意,它同时返回日期和时间,因此-也许您想通过截断时间部分来删除时间部分,即使用trunc(sysdate)
。减去1000意味着“ 天天前”;只是为了避免可能的混乱。