오라클에 대한 MySQL의 쿼리를 다시 작성했습니다. MySQL은 하나의 행을 제공하고 오라클은 왜 궁금해하고 있습니까?오라클 오라클 오라클은 다른 결과를 다시 작성
select
me.col1,
me.col2,
me.col3,
min(col3) over (partition by episode_id order by col3) as me_col3 ,
LISTAGG(col2, ',') WITHIN GROUP (ORDER BY col3) over (partition by col2)
from
my_sql_table me
group by me.col1,me.col2,me.col3
order by col3
오라클에
MySQL의 쿼리
select me.col1,
me.col2,
me.col3,
min(col3) as me_col3 ,
group_concat(col2) col4,
from
my_sql_table me
group by me.col2
order by col3
재 작성 방법 MySQL과 오라클이 같은 결과를 얻을 수 있도록 해당 쿼리를 다시 작성하는 어떤 생각?
은 몇 가지 조사를하고 내가
group_concat
및 listagg
을 제거하면 내가 MySQL과 오라클에서 같은 결과를 얻을 수 있음을 발견했다. 그러나 group_concat
을 추가하면 MySQL과 Oracle간에 결과가 달라집니다.
ORA-00979와 함께 Oracle에서 쿼리가 실패합니다. GROUP BY가 아님. 왜 우리에게 실제 사례를주지 않습니까? –
col1, col2 및 col3을 포함하도록 MySQL 쿼리의 GROUP BY를 변경하면 어떻게됩니까? 결과가 일치합니까? 그렇다면 문제는 MySQL이 허용하는 불완전한 GROUP BY이지만 Oracle은 그렇지 않습니다. –
밥 그렇습니다. col1, col2, col3 열을 추가하면 결과가 일치하고 어떤 도움을받을 수 있는지 확신 할 수 없습니다. –