我想将相邻的重复行合并为一个, 例如,我有一个包含两列的表演示
data | order
-------------
A | 1
A | 2
B | 3
B | 4
A | 5
我希望结果是:
A
B
A
如何通过在oracle中选择一个SQL查询来实现这一目标?
答案 0 :(得分:2)
请尝试这样的事情
select *
from table t1
where not exists(select * from table t2 where t2.order = t1.order - 1 and t1.data = t2.data)
答案 1 :(得分:2)
上面的Dmitry建议的答案是在SQL中工作,要使它在oracle中工作,你需要做一些修改。
order
是一个保留关键字,您需要按如下方式转义它。
select
*
from
Table1 t1
where not exists(
select * from Table1 t2
where
t2."order" = t1."order" - 1
and
t1."data" = t2."data"
) order by "order"
答案 2 :(得分:-2)
您可以按列分组
查看http://docs.oracle.com/javadb/10.6.1.0/ref/rrefsqlj32654.html
来自官方oracle网站的示例:
SELECT AVG (flying_time), orig_airport
FROM Flights
GROUP BY orig_airport