我有以下查询返回重复行重复行,如何摆脱掉他们:摆脱掉
select a.code, b.daytime, b.created_date
from ov a, CURVE b
where b.curve_object_id = a.object_id
order by b.daytime
什么我要找的是提取对象名的最好方法(在我的情况下,它的代码)从第二个表中的object_id在两个表中是否相同?
我有以下查询返回重复行重复行,如何摆脱掉他们:摆脱掉
select a.code, b.daytime, b.created_date
from ov a, CURVE b
where b.curve_object_id = a.object_id
order by b.daytime
什么我要找的是提取对象名的最好方法(在我的情况下,它的代码)从第二个表中的object_id在两个表中是否相同?
您是否尝试使用group by
来消除重复的行,如下所示?
select a.code, b.daytime,b.created_date
from ov a, CURVE b
where b.curve_object_id=a.object_id
group by a.code, b.daytime,b.created_date
order by b.daytime
你有重复的行,因为你有重复的数据?还是你有重复的行,因为你有一个缺少连接条件?我已经看到这些情况中的任何一个已经被GROUP-BY“固定”的情况。对于小型测试数据集来说,它工作得很好。但是当数据集变大时,您可能会发现自己处于一个受到伤害的世界。也许你可以详细说明你想要实现的目标? – BobC
Tumen_t:谢谢,这工作正常。 BobC:表曲线中没有重复的数据,可能是因为我缺少连接条件。所以你所说的分组对大数据集来说不是好的选择,那么大数据集最适合什么呢? –
始终使用现代显式JOIN语法。
也就是说,你可以在你选择使用distinct
:
select distinct a.code,
b.daytime,
b.created_date
from ov a
join CURVE b on b.curve_object_id = a.object_id
order by daytime
在TSQL有不同,但我不知道有关Oracle – Paparazzi
这是不明确。什么构成“重复”?在文本中,你说你想“提取”(无论是什么意思)对象名称(在你的情况下它是代码),但在查询中选择代码AND daytime AND created_date。那么,它是什么 - 你想要代码,还是你想要所有三个?什么是“重复” - 具有相同代码的行? (这不是“重复”的定义 - 重复是所有值相等的行 - 但我猜你可能以非技术方式使用“重复”)。 – mathguy
抱歉不清楚dublicate行,表ov是仅存储单个代码名称和关联对象id与代码名称的表,表曲线是日常数据,因此它可以是具有相同代码名称但具有不同日期的多个记录(白天列) 。 –