Hej.
Jeg har en tabel - lad mig blot kalde den 'emailtabel' - hvori der er et
felt med e-mail-adresser.
Jeg ønsker at udtrække en liste over e-mail-adresser der er dubliketter i
tabellen og hvormange dubliketter det drejer sig om.
Jeg har forsøgt med dette:
SELECT email, COUNT(email) AS antal
FROM emailtabel
WHERE antal > 1
GROUP BY email
ORDER BY antal DESC
Men det vil ikke virke. Problemet er så vidt jeg har fundet frem til
WHERE-clausen. Denne kan altså åbenbart kun søge på felter -før- de bliver
grupperet med GROUP BY-clausen - og herved ikke på nogle felter der benytter
sig af COUNT, da denne bliver udregnet efter grupperingen. Jeg har også
prøvet med WHERE COUNT(email) > 1. Men det er jo klart at dette heller ikke
virker.
Nu kunne jeg jo blot fjerne denne WHERE antal > 1, men problemet er at jeg
så herved også får e-mail-adresser ud, som kun optræder i tabellen én gang,
hvilket ikke var idéen.
Man kunne også foreslå at jeg simpelten blot fik et program til at
frasortere resultater, hvor antal = 1, men dette er også ret uholdbart, da
jeg allerede har lavet et system, der kan vise adskillige forskellige
SQL-forespørgsler - og det ville kræve en masse småændringer, hvis jeg
skulle tage højde for dette specielle SQL-kald. I øvrigt ville man heller
ikke lige kunne smide en LIMIT a,b ind for kun at udtage en delmængde,
hvilket jeg bruger flittigt til at vise flere sider af en resultat-liste.
Dette må være en generel SQL-ting og derved burde det vel være ligegyldigt,
hvilken database jeg bruger, men til oplysning er det MySQL 3.23.52 (jeg har
ikke adgang til at opgradere den - øv!
Mvh. Bjarke