Avatar billede mjansen Seniormester
27. november 2013 - 12:18 Der er 1 kommentar og
1 løsning

Fjerne dubletter

Hej NG

Har en tabel med:

ID - Input_ID - Maalt_Tid - Value

ID er PRIMARY

Vil så gerne lave en Unik på (Input_ID - Maalt_Tid) så jeg undgår dubletter.

Vil derfor slette dubletterne med:
DELETE FROM LogData_ny WHERE ID IN (SELECT MAX( ID ) FROM LogData_ny GROUP BY Maalt_Tid, Input_ID HAVING COUNT( * ) >1)

Får følgende fejl:
#1093 - You can't specify target table 'LogData_ny' for update in FROM clause

Hvad gør jeg så?

mySQL V5.1.61
Avatar billede mjansen Seniormester
27. november 2013 - 12:44 #1
Prøver nu:
DELETE FROM LogData_ny WHERE ID IN ( SELECT * FROM (SELECT MAX( ID ) FROM LogData_ny GROUP BY Maalt_Tid, Input_ID HAVING COUNT( * ) >1) AS p)

Hvis jeg kun laver SELECT delen tager det ca. 4 min. er der så nogen der har en ide om hvor lang tid det tager at udfører det hele. Hvis det kan lade sig gøre...

pt.  25 min.
Avatar billede mjansen Seniormester
27. november 2013 - 13:38 #2
Har lavet en ny tabel
og lavet en insert into (select)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester