Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 8th, 2012  |  syntax: None  |  size: 1.31 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. SQL: Removing Duplicate records - Albeit different kind
  2. TAB6
  3.          A          B C
  4. ---------- ---------- -
  5.          1          2 A
  6.          2          1 A
  7.          2          3 C
  8.          3          4 D
  9.        
  10. A          B C                      A          B C
  11. ---------- ---------- -             ---------- ---------- -
  12.          1          2 A         or           2          1 A
  13.          2          3 C                      2          3 C
  14.          3          4 D                      3          4 D
  15.        
  16. select t1.*
  17. from t6 t1
  18. , t6 t2
  19. where t1.a <> t2.b
  20. and t1.b <> t2.a
  21. and t1.rowid <> t2.rowid
  22. /
  23.  
  24.          A          B C
  25. ---------- ---------- -
  26.          1          2 A
  27.          2          1 A
  28.          2          1 A
  29.          2          3 C
  30.          3          4 D
  31.          3          4 D
  32.  
  33. 6 rows selected.
  34.        
  35. select *
  36.  from t6 t1
  37.  where exists (select * from t6 t2 where t1.a <> t2.b and t1.b <> t2.a)
  38. /
  39.          A          B C
  40. ---------- ---------- -
  41.          1          2 A
  42.          2          1 A
  43.          2          3 C
  44.          3          4 D
  45.        
  46. select distinct least(a, b) as a
  47.        , greatest(a, b) as b
  48.        , c
  49. from t6
  50.        
  51. create index t6_fbi on t6(least(a, b)
  52.                            , greatest(a, b)
  53.                            , c )
  54. /
  55.        
  56. select distinct
  57.   least(a, b) as a,
  58.   greatest(a, b) as b,
  59.   c
  60. from
  61.   t6