Avatar billede thomaslp Nybegynder
25. februar 2005 - 14:32 Der er 22 kommentarer

Hvordan finder jeg nemmest dubletter

Hej,

Jeg har en database hvor jeg skal generere et unik index på (via Axapta). Desværre er der blandt de 17000 poster dubletter hvorfor jeg ikke kan lave et unik index. Kan man lave en SQL Query der udtrækker alle poster i én tabel hvor værdien i række x = værdien i række x. Hvis jeg får en sådan liste kan jeg jo nemt "luse ud" i dubletterne.
Avatar billede kalp Novice
25. februar 2005 - 14:34 #1
En spade kommentar .. er det ikke distinct man anvender her?
Avatar billede jensgram Nybegynder
25. februar 2005 - 14:37 #2
SELECT * FROM <tabel> WHERE COUNT(x) > 1 GROUP BY COUNT(x) (måske?)
Avatar billede jensgram Nybegynder
25. februar 2005 - 14:38 #3
kalp > Jo, det er vist tæt på. Mener at DISTINCT sørger for, at man kan får én række selvom der måtte være flere. Derfor mener jeg ikke, at den kan hjælpe med at "luse ud" i dubletterne.
Avatar billede thomaslp Nybegynder
25. februar 2005 - 14:43 #4
Jeg forstår godt din hensigt jensgram men det giver syntax fejl.

An aggregate may not appear in the WHERE clause unless it is in a subquery contained in a HAVING clause or a select list, and the column being aggregated is an outer reference.
Avatar billede arne_v Ekspert
25. februar 2005 - 14:45 #5
Prøv med en self join:

SELECT t1.id,t2.id
FROM t t1, t t2
WHERE t1.x=t2.x AND t1.id<>t2.id
Avatar billede jensgram Nybegynder
25. februar 2005 - 14:45 #6
Hovsa - det var da også en fjel:

SELECT * FROM <tabel> WHERE COUNT(x) > 1 GROUP BY x
Avatar billede thomaslp Nybegynder
25. februar 2005 - 14:53 #7
ArneV kan du hjælpe lidt. Jeg er hamrende dårlig til SQL. Tabellen hedder SagsstyringTable og feltet med dubletter hedder ID.
Avatar billede dadane Novice
25. februar 2005 - 14:54 #8
Arne, - evt. bare med t1.id<t2.id. Der er vel ingen grund til at vise den samme tupel flere gange?
Avatar billede jensgram Nybegynder
25. februar 2005 - 14:56 #9
SELECT t1.id,t2.id
FROM SagsstyringTable t1, SagsstyringTable t2
WHERE t1.ID=t2.ID AND t1.ID<t2.ID
Avatar billede arne_v Ekspert
25. februar 2005 - 14:58 #10
SELECT t1.whatever, t2.whatever
FROM SagsstyringTable t1, SagsstyringTable t2
WHERE t1.ID=t2.ID AND t1.whatever<>t2.whatever

Hvor whatever er det felt som identifiecerer rækkerne f.eks. primær nøgle
Avatar billede arne_v Ekspert
25. februar 2005 - 14:58 #11
dadane>

ja det kan du have ret i
Avatar billede arne_v Ekspert
25. februar 2005 - 14:58 #12
jensgram>

Hvormange rækker matcher:

WHERE t1.ID=t2.ID AND t1.ID<t2.ID

????
Avatar billede thomaslp Nybegynder
25. februar 2005 - 15:18 #13
ArneV:
SELECT t1.ID, t2.ID
FROM axdb.SagsstyringTable t1, axdb.SagsstyringTable t2
WHERE t1.ID=t2.ID AND t1.ID<>t2.ID
Returnerer 0 rækker men jeg ved at der er i hvert fald 2 rækker der har samme ID.
Avatar billede jensgram Nybegynder
25. februar 2005 - 15:56 #14
Arne > Ja, der har jeg da vist haft en nedsmeltning :)
Avatar billede jensgram Nybegynder
25. februar 2005 - 15:57 #15
Jeg hopper vist bare op i mit tårn igen...
Avatar billede arne_v Ekspert
25. februar 2005 - 17:34 #16
thomas>

whatever skal ikke være ID men et andet felt som identificerer rækkerne
Avatar billede jtbroad Nybegynder
25. februar 2005 - 22:46 #17
Select * from SagstyringTable where count(ID) > 1

Måske?
Avatar billede arne_v Ekspert
25. februar 2005 - 22:50 #18
Hvis vi skal den vej så:

SELECT Id,COUNT(*) AS n
FROM SagstyringTable
GROUP BY Id
HAVING n > 1
Avatar billede jtbroad Nybegynder
25. februar 2005 - 23:03 #19
select * from SagstyringTable where (select count(ID)from SagstyringTable) != 1
skulle returnere de tupler i tabellen der er duplikeret.

Virker på en a min tabeller der har den samme data gentaget 6 gange
Avatar billede jtbroad Nybegynder
25. februar 2005 - 23:16 #20
glem det jeg vrøvler vist
Avatar billede jtbroad Nybegynder
25. februar 2005 - 23:20 #21
lave en hjælpetabel der indeholder en kolonne der hedder ID
select distinct ID from sagstyringtabel into denne tabel

select ID, count(ID) from SagstyringTable as sst where sst.ID = hjælpetable.ID

???
Avatar billede jtbroad Nybegynder
04. marts 2005 - 13:51 #22
Har du haft nogen held med at løse problemet?
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