1
我最近問this question關於如何查詢數據庫中的重複行。我收到的答案很奏效,但速度更快,但我已將數據集從20,000行擴展到80,000行,並且查詢所用的時間在幾分鐘內,這是不可接受的。使用休眠與大數據集重複行
如果我有這樣的一個表:
ID Name Country
1 Dave UK
2 Jim UK
3 Dave UK
4 Dave US
5 Jim US
我希望能夠返回行1和3,因爲他們是在那裏的名字和國家的組合多次出現的唯一行。
目前的答案是做到以下幾點:
select r
from Runner r
where exists
(
select rn
from Runner rn
where rn.id <> r.id
and rn.name = r.name
and rn.country = r.country
)
但這服用時間太長了。我想知道是否有人能夠優化此查詢以便在比較中更高效,或者是否有任何可顯着提高查詢性能的策略?
我嘗試了類似的東西,它拋出了一個錯誤,因爲group by子句中沒有ID。 – christopher
請嘗試一下查詢瀏覽器。如果你在查詢中沒有包含id,它不需要包含在group by子句 – ajoshi
是的,但是我不想只返回名字和國家。我想返回整個對象,這將隱含包含ID。 – christopher