Greetings,
I am trying to remove duplicate records from a table but preserving one of them using temp tables/etc. Pretty much removing duplicates but leaving one of the identical sets.
Example DATA would like like:
col1, col2, col3
20, 1090, bad
22, 1090, bad
25, 1090, bad
28, 1091, good
2350, 2444, bad
2353, 2444, bad
2370, 2444, bad
3000, 5000, good
3005, 5001, good
AFTER the DELETE sql (which I need help with)
example data (based off of above) should look like
col1, [b]col2[/ col3
20, 1090, bad
28, 1091, good
2350, 2444, bad
3000, 5000, good
3005, 50001, good
Please notice that one of each of the sets that had duplicates remains.
The records the new sql would need to focus on would be records on col2 With counts(col2) >1 should not have two col2's with data like 1090. All but one of them would need to be deleted. Doesnt matter which one is left.
Please help!
|
Light Poster
|
|
| 20Aug2009,02:50 | #2 |
|
Something I would like to try is building a temp table and just comparing original table to the temp table... Dont know how to do this in informix though.... Here is a sketch.
delete Table1 from origtable Table1, temp_table Table2 where Table1.col2 = Table2.col2 and Table1.col1 > table2.col2 |
|
Mentor
|
![]() |
| 20Aug2009,12:21 | #3 |
|
Don't know if you can do it in a single query but if you SELECT DISTINCT col2 in a cursor, then loop over that cursor you can SELECT MIN(col1) ... WHERE col2=<cursor value>.
|
|
Banned
|
|
| 20Aug2009,12:33 | #4 |
|
Hope he is using SQL
lol
|
|
Mentor
|
![]() |
| 20Aug2009,15:10 | #5 |
|
well he referred to SQL in both posts so I would say that's a yes.
naimish
like this
|
|
Invasive contributor
|
![]() |
| 23Aug2009,03:19 | #6 |
|
I think he's referring to generic sql, and the tool he referred is informix.
Does informix has it's own sql language, or it uses T-SQL or PL/SQL |


lol
