Avatar billede per-d Nybegynder
20. marts 2009 - 18:28 Der er 9 kommentarer og
1 løsning

Lav top50 over domæner ud fra email adresser

Er det muligt ud fra ren sql kode at lave en funktion, der udfra en tabel der indeholder en række email adresser, laver en top50 over domæner? F.eks. har man en tabel med 100.000 emailadresser, så går databasen ind og sortere efter domæner i email adresserne og lister dem bagefter i rækkefølge efter det domæne der har flest email adresser tilmeldt?
Avatar billede arne_v Ekspert
20. marts 2009 - 18:40 #1
proev:

SELECT SUBSTRING(emailadr, LOCATE('@',emailadr)+1) AS domaene, COUNT(*) AS antal
FROM tabel
GROUP BY SUBSTRING(emailadr, LOCATE('@',emailadr)+1)
ORDER BY antal DESC
LIMIT 50
Avatar billede per-d Nybegynder
20. marts 2009 - 18:57 #2
Det ser ud til at virke, men er det muligt at den kan optimeres?, Det skyldes nemlig at den skal søge på en tabel med ca 2.5 millioner unikke adresser, og har kørt en test og det tager 89 sek for den at komme igennem tabellen.
Avatar billede arne_v Ekspert
20. marts 2009 - 19:10 #3
Jeg kan kun se 2 muligheder:

1)

2 felter - et med det foran @ og et med det bagved @

2)

SELECT emailadr FROM tabel

og saa logikken i applikationen.
Avatar billede arne_v Ekspert
20. marts 2009 - 19:10 #4
Men det tager altsaa tid at laese 2.5 millioner raekker uanset hvad.
Avatar billede per-d Nybegynder
20. marts 2009 - 19:30 #5
Ja det er jeg godt klar over, men da det alene skal bruges til statistik laver jeg bare et batch job der kører det engang hver dag, at lave et nyt felt vil jeg helst undgå, det fylder bare mere og allerede nu er hele systemet oppe at optage 27 gb dataplads.
Avatar billede per-d Nybegynder
20. marts 2009 - 19:31 #6
Opretter du ikke et svar så du kan få dine points.
Avatar billede aners Nybegynder
20. marts 2009 - 19:34 #7
Det lyder interessant - hvis du har været i stand til at indsamle 2.5mio e-mail-adresser, må du vel drive et stort website eller tilsvarende?

Så undrer det mig lidt, at du ikke kan finde ud af at sortere dem - skal der spammes? ;)
Avatar billede per-d Nybegynder
20. marts 2009 - 19:47 #8
Det er så ikke mig der driver det, jeg er kun tilknyttet som programmør. Hvilket giver en helt del udfordringer, fordi datamængden er så stor.

Men det er udbyder af en email liste service, og der findes en helt række kontroller der gør at det er meget svært at bruge servicen som en spam service.
Avatar billede arne_v Ekspert
20. marts 2009 - 20:27 #9
svar
Avatar billede showsource Seniormester
21. marts 2009 - 17:19 #10
Når man bruger et alias, kan man vel bruge group by aliasname ?
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