/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Liste dupliketter i et felt
Fra : Bjarke Walling Peter~


Dato : 13-09-03 22:49

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



 
 
Peter Brodersen (14-09-2003)
Kommentar
Fra : Peter Brodersen


Dato : 14-09-03 00:45

On Sat, 13 Sep 2003 23:48:36 +0200, "Bjarke Walling Petersen"
<bwp.news@bwp.dk> wrote:

>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.

Så skal du bruge HAVING. Fx:

SELECT email, COUNT(email) AS antal
FROM emailtabel
GROUP BY email
HAVING antal > 1
ORDER BY antal DESC

--
- Peter Brodersen

Ugens sprogtip: PHP (og ikke PhP)

Bjarke Walling Peter~ (14-09-2003)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 14-09-03 00:49

Peter Brodersen skrev:
> Så skal du bruge HAVING. Fx:
>
> SELECT email, COUNT(email) AS antal
> FROM emailtabel
> GROUP BY email
> HAVING antal > 1
> ORDER BY antal DESC

Mange tak! Nu virker det. Det er jo glædeligt, at der var en så simpel
løsning.

Mvh. Bjarke



Jesper Brunholm (14-09-2003)
Kommentar
Fra : Jesper Brunholm


Dato : 14-09-03 08:32

Bjarke Walling Petersen wrote:
> Peter Brodersen skrev:

[snip - løsning]

Jeg ved godt det er OT, men til en anden gang, og en smule for at man
kan finde tråden hvis man skulle søge på det rigtige ord, så hedder det
dubletter

mhv

Jesper Brunholm


Bjarke Walling Peter~ (14-09-2003)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 14-09-03 15:49

Jesper Brunholm skrev:
> Jeg ved godt det er OT, men til en anden gang, og en smule for at man
> kan finde tråden hvis man skulle søge på det rigtige ord, så hedder det
> dubletter

Ups... hmm... er åbenbart ikke det store sproglige geni. Ved ikke lige hvor
jeg har fået mit udtryk fra.

Mvh. Bjarke



Peter Lykkegaard (14-09-2003)
Kommentar
Fra : Peter Lykkegaard


Dato : 14-09-03 16:21


"Bjarke Walling Petersen" <bwp.news@bwp.dk> wrote in a message

> Ups... hmm... er åbenbart ikke det store sproglige geni. Ved ikke lige
hvor
> jeg har fået mit udtryk fra.
>
Det er da ikke så galt, du er ikke den eneste
Prøv at søge på Google efter dupliketter

DK: Dubletter
EN: Duplicates

mvh/Peter Lykkegaard



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste