tmbMedlem sedan feb. 200328 inlägg Hej!
Har en svår fråga (tror jag): Om man har en tabell med duplikat och man vill radera alla utom ett hur gör man då? Går det överhuvudtaget?
I mitt fall så har jag för att göra allt lättare två fält som nycklar för att finna duplikaten, sera och serb.
LarsGMedlem sedan dec. 200012 464 inlägg Om det finns en annan kolumn (låt oss kalla den id) som är unik
delete from t
where id not in (select min(id)
from t
group by sera,serb)
Om det inte finns någon unik kolumn så går det alltid med följande
-- skapa tabell (ny) med samma defíntion som den med duplikat
insert into ny select distinct * from t
delete from t
-- skapa primärnyckel/unique constraint för att undvika
-- detta senare
insert into t select * from ny
drop table ny
tmbMedlem sedan feb. 200328 inlägg Jo, en unik kolumn har jag faktiskt men kommer inte första SQL-satsen att ta bort även de poster som det bara finns en av redan? Jag har alltså unika poster blandade med duplikat i tabellen men det framgår ju inte av min beskrivning ser jag nu. Bara duplikaten skall bort så alla poster blir unika igen.
Den sista satsen är den lösning jag jobbat efter men för att jävlas extra mycket så är det hela dessutom indelat i en vy :D
Jag visar hur det är uppbyggt så förstår man nog problemet bättre:
tbl1 - wave, sera, serb
tbl2 - sera_2, serb_2
vy1 - tbl1.*, tbl2.* där sera=sera_2 och serb=serb_2
I datat har jag wave 1 till 7 där wave 5 är duplicerad i tbl2 men inte tbl1. Jag vill ta bort alla duplikatposter ur tbl2 utan att påverka tbl1 alls.
Som jag ser det så är nog ditt senare förslag det man skall arbeta efter men man vet ju aldrig om någon expert här har en bättre och snabbare lösning. Är ingen expert själv på SQL och har svårt att tänka ut kreativa lösningar som nyttjar SQL:s kraftulla möjligheter.
tmbMedlem sedan feb. 200328 inlägg Testade din första lösning och den verkar faktiskt fungera. Nu har jag bara 954 poster för wave 5 istf 1908. Bortse från min andra postning ovan.
Så enkelt... och ändå kom man inte på det själv :D
Största problemet för min del är nog att jag är osäker på om man verkligen har kvar det data som skall vara kvar. Som i exemplet ovan. Om jag listat ut det hela själv hade jag ändå förmodligen varit osäker på att det verkligen var alla duplikat som försvann och inte andra unika poster som borde ha varit kvar. Det är väl en vanesak antar jag.
Tack för hjälpen. Det tog bort mycken huvudvärk :D