我有以下查詢返回重複行重複行,如何擺脫掉他們:擺脫掉
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與代碼名稱的表,表曲線是日常數據,因此它可以是具有相同代碼名稱但具有不同日期的多個記錄(白天列) 。 –