我已经重新编写了一个从 Mysql 到 oracle 的查询,而 Mysql 给了我一行,而 oracle 给出了多个,只是想知道为什么?
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
改写成 Oracle
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 和 Oracle 给出相同的结果吗?
做了一些研究,发现如果我删除了group_concat
,listagg
我会在 Mysql 和 Oracle 中得到相同的结果。但是如果我添加group_concat
后面,那么 Mysql 和 Oracle 之间的结果会有所不同。