/ 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
MySQL Group by og Count
Fra : Peter


Dato : 18-11-08 13:27

Jeg har en tabel kort med et felt modtager, jeg vil have alle dem hvor der
er flere end 1 forekomst. Er dette det bedste måde at gøre det på?

SELECT modtager FROM
(SELECT count(*) as antal, modtager FROM kort
WHERE modtager<>""
GROUP BY modtager
ORDER BY modtager) as temp
WHERE antal>1

/P



 
 
Henrik Stidsen (18-11-2008)
Kommentar
Fra : Henrik Stidsen


Dato : 18-11-08 17:31

"Peter" <nomail@nomail.dk> wrote in
news:4922b49b$0$90264$14726298@news.sunsite.dk:

> SELECT modtager FROM
> (SELECT count(*) as antal, modtager FROM kort
> WHERE modtager<>""
> GROUP BY modtager
> ORDER BY modtager) as temp
> WHERE antal>1

Jeg har ik lige nogen MySQL server tilgængelig lige nu, men mon ikke:
SELECT COUNT(modtager) AS antal, modtager FROM kort HAVING antal > 1;

Ska muligvis kombineres med noget group og noget lign - men jeg mener det
er "having" du skal kigge på.

--
Henrik Stidsen - http://henrikstidsen.dk/
http://fuglemarkedet.dk/ - Danmarks online fuglemarked!

Peter (18-11-2008)
Kommentar
Fra : Peter


Dato : 18-11-08 19:55

"Henrik Stidsen" <inbox@henrikstidsen.dk> skrev i en meddelelse
news:Xns9B5AB231EC927henrikstidsendk@130.225.247.90...
> "Peter" <nomail@nomail.dk> wrote in
> news:4922b49b$0$90264$14726298@news.sunsite.dk:
>
>> SELECT modtager FROM
>> (SELECT count(*) as antal, modtager FROM kort
>> WHERE modtager<>""
>> GROUP BY modtager
>> ORDER BY modtager) as temp
>> WHERE antal>1
>
> Jeg har ik lige nogen MySQL server tilgængelig lige nu, men mon ikke:
> SELECT COUNT(modtager) AS antal, modtager FROM kort HAVING antal > 1;
>
> Ska muligvis kombineres med noget group og noget lign - men jeg mener det
> er "having" du skal kigge på.

Har prøvet med forskellige kombinationer af HAVING men får hver gang en "You
have an error in your SQL syntax"

/P



Peter (18-11-2008)
Kommentar
Fra : Peter


Dato : 18-11-08 20:02

"Peter" <nomail@nomail.dk> skrev i en meddelelse
news:49230f83$0$90270$14726298@news.sunsite.dk...
> "Henrik Stidsen" <inbox@henrikstidsen.dk> skrev i en meddelelse
> news:Xns9B5AB231EC927henrikstidsendk@130.225.247.90...
>> "Peter" <nomail@nomail.dk> wrote in
>> news:4922b49b$0$90264$14726298@news.sunsite.dk:
>>
>>> SELECT modtager FROM
>>> (SELECT count(*) as antal, modtager FROM kort
>>> WHERE modtager<>""
>>> GROUP BY modtager
>>> ORDER BY modtager) as temp
>>> WHERE antal>1
>>
>> Jeg har ik lige nogen MySQL server tilgængelig lige nu, men mon ikke:
>> SELECT COUNT(modtager) AS antal, modtager FROM kort HAVING antal > 1;
>>
>> Ska muligvis kombineres med noget group og noget lign - men jeg mener det
>> er "having" du skal kigge på.
>
> Har prøvet med forskellige kombinationer af HAVING men får hver gang en
> "You have an error in your SQL syntax"

Jeg kikkede i MySQL manualen bare for at prøve noget nyt og så kom
løsningen:

a HAVING clause must come after any GROUP BY clause and before any ORDER BY
clause

SELECT count(*) as antal, modtager FROM kort
WHERE modtager<>""
GROUP BY modtager
HAVING antal>1
ORDER BY modtager

Takker

/P



Arne Vajhøj (18-11-2008)
Kommentar
Fra : Arne Vajhøj


Dato : 18-11-08 20:02

Peter wrote:
> "Henrik Stidsen" <inbox@henrikstidsen.dk> skrev i en meddelelse
> news:Xns9B5AB231EC927henrikstidsendk@130.225.247.90...
>> "Peter" <nomail@nomail.dk> wrote in
>> news:4922b49b$0$90264$14726298@news.sunsite.dk:
>>
>>> SELECT modtager FROM
>>> (SELECT count(*) as antal, modtager FROM kort
>>> WHERE modtager<>""
>>> GROUP BY modtager
>>> ORDER BY modtager) as temp
>>> WHERE antal>1
>> Jeg har ik lige nogen MySQL server tilgængelig lige nu, men mon ikke:
>> SELECT COUNT(modtager) AS antal, modtager FROM kort HAVING antal > 1;
>>
>> Ska muligvis kombineres med noget group og noget lign - men jeg mener det
>> er "having" du skal kigge på.
>
> Har prøvet med forskellige kombinationer af HAVING men får hver gang en "You
> have an error in your SQL syntax"

.... near <og den SQL som giver fejlen>

Hvis du giver os den info, så er det nemmere at hjælpe.

Arne

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

Månedens bedste
Årets bedste
Sidste års bedste