得到重複的記錄我有如下與結構表: 無法從表
爲user_id具有值在特定的時間間隔各自的項目。項目值可以是文本或整數取決於項目。
我想檢查是否有任何兩個或多個UserId爲相同的值,這意味着它們的項目在相同的值和相同的時間間隔內是相同的。
如上表所示UserId 213456和UserId 213458具有相同的記錄。 我試過使用遊標和循環,但它花費的時間太長。我的表有超過5000萬UserId。有沒有辦法以有效的方式做到這一點?
我也嘗試使用group by子查詢,但所有的嘗試都未能創建一個好的查詢。
我創建使用How do I find duplicate values in a table in Oracle?
select t1.USERID, count(t1.USERID)
from USERS_ITEM_VAL t1
where exists (select *
from USERS_ITEM_VAL t2
where t1.rowid <> t2.rowid and
t2.ITEMID = t1.ITEMID and
t2.TEXT_VALUE = t1.TEXT_VALUE and
--t2.INTEGER_VALUE = t1.INTEGER_VALUE and
t2.INIT_DATE = t1.INIT_DATE and
t2.FINAL_DATE = t1.FINAL_DATE)
group by t1.USERID having count(t1.USERID) > 1 order by count(t1.USERID);
下面的查詢,但問題是它的工作不包括INTEGER_VALUE列,但不給我輸出的時候,當我包括在INTEGER_VALUE列的加入,雖然我在INTEGER_VALUE列數據是一樣的。 這裏是我的表的結構:接近這個利用自加入
USERID - NUMBER
ITEMID - NUMBER
TEXT_VALUE - VARCHAR2(500)
INTEGER_VALUE - NUMBER
INIT_DATE - DATE
FINAL_DATE - DATE
https://stackoverflow.com/questions/59232/how-do-i-find-duplicate-values-in-a-table-in-oracle –