Avatar billede killel Nybegynder
29. oktober 2008 - 08:41 Der er 6 kommentarer og
1 løsning

Oprydning af database (jeg vil kun have hver post en gang)

Hej,

Jeg har en database med 15-20 punkter.

Hver post bør være unik, men mit cronejob at kørt scripet lidt oftere end planlagt og har således tilføjet data til databasen 3 gange i døgnet i stedet for kun en gang.

Jeg har et felt til hver post som indeholder datoen.

Er det ikke muligt at lave en automatisk sletning af databasen så der kun fremkommer unikke poster?
Avatar billede killel Nybegynder
29. oktober 2008 - 09:39 #1
databasen indeholder over 1.000.000 poster så det skal helst gøres automatisk:)
Avatar billede Syska Mester
29. oktober 2008 - 12:20 #2
Altså ... du kan jo gøre noget ala:
SELECT MAX(SD.StatDateID), SD.Date FROM StatDates SD GROUP BY SD.Date HAVING COUNT(SD.StatDateID) > 1

Så får du ID's ud som har mere end 1 post per dag ...

Skal lige have drejet i min egen hjerne hvordan man får dem ud hvis der er flere
Avatar billede HenrikSjang Nybegynder
29. oktober 2008 - 19:01 #3
Kører du sql server 2005?

Hvis du gør, så bør dette kunne hjælpe dig:

with cte
as
(
select
  row_number() over (partition by dit_datofelt order by dit_datofelt) as rn,
  *
from din_tabel
)
delete from cte
where rn > 1

Men test lige på en anden tabel først ik? ;)

Hvis ikke du har et test-setup, så kan du fx lige starte med at lave en kopi af din tabel sådan her:

select * into KopiTabel from OriginalTabel

og så prøve ovenstående cte-kode på KopiTabel'en først.

Hvis du kører sql server 2000, så kan du ikke bruge ovenstående.
Avatar billede killel Nybegynder
30. oktober 2008 - 09:27 #4
Kører desværre mysql via One.com :(
Avatar billede Syska Mester
30. oktober 2008 - 09:58 #5
Så er det ikke den korrekte kategori du har oprettet dit spm i :-)

Der er en til mysql :-)

// ouT
Avatar billede killel Nybegynder
30. oktober 2008 - 17:25 #6
DOH, det var også den jeg prøvede at ramme.

Beklager fejlen.
Avatar billede killel Nybegynder
31. januar 2012 - 15:26 #7
flyttet til anden gruppe
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