/ 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
count, group, where syntax
Fra : ZiGGi


Dato : 29-11-07 11:26

Hej NG,

Muligvis et tåbeligt spørgsmål, men jeg kan ikke rigtigt blive enig med mig
selv om hvordan det laves pænest

Jeg har en struktur lig:

ID (primary key)
employee_id
serial_num

Jeg ønsker at returnere alle employee_id's som er registreret med mere end
ét serial_num. Altså lige:

SELECT COUNT(*) AS number, employee_id GROUP BY serial_num;

....men... kun hvor COUNT(*) > 1

Idéen kan beskrives som:

SELECT COUNT(*) AS number, employee_id WHERE number>2 GROUP BY serial_num;
(hvilket dog ikke er syntax-mæssigt korrekt)

Jeg er desværre bundet til en mysql 4.0.18 men forslag til både 4.x og 5.x
modtages gerne

PFT
/Michael



 
 
Gert Krabsen (29-11-2007)
Kommentar
Fra : Gert Krabsen


Dato : 29-11-07 11:59

Uden at have testet syntaksen:

SELECT COUNT(ID) AS number, employee_id
FROM tabel
WHERE COUNT(ID)>1

???



GROUP BY serial_num er udeladt, for det optræder vel kun een gang i
tabellen (ellers har du et databasestruktur-problem)




ZiGGi skrev:
> Hej NG,
>
> Muligvis et tåbeligt spørgsmål, men jeg kan ikke rigtigt blive enig med mig
> selv om hvordan det laves pænest
>
> Jeg har en struktur lig:
>
> ID (primary key)
> employee_id
> serial_num
>
> Jeg ønsker at returnere alle employee_id's som er registreret med mere end
> ét serial_num. Altså lige:
>
> SELECT COUNT(*) AS number, employee_id GROUP BY serial_num;
>
> ...men... kun hvor COUNT(*) > 1
>
> Idéen kan beskrives som:
>
> SELECT COUNT(*) AS number, employee_id WHERE number>2 GROUP BY serial_num;
> (hvilket dog ikke er syntax-mæssigt korrekt)
>
> Jeg er desværre bundet til en mysql 4.0.18 men forslag til både 4.x og 5.x
> modtages gerne
>
> PFT
> /Michael
>
>

Jens Gyldenkærne Cla~ (29-11-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 29-11-07 12:50

Gert Krabsen skrev:

> Uden at have testet syntaksen:
>
> SELECT COUNT(ID) AS number, employee_id
> FROM tabel
> WHERE COUNT(ID)>1


Niks - du kan ikke have employee_id med i en group by-forespørgsel
uden enten at gruppere på den eller aggregere den.


--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Gert Krabsen (29-11-2007)
Kommentar
Fra : Gert Krabsen


Dato : 29-11-07 13:49

Jens Gyldenkærne Clausen skrev:
> Gert Krabsen skrev:
>
>> Uden at have testet syntaksen:
>>
>> SELECT COUNT(ID) AS number, employee_id
>> FROM tabel
>> WHERE COUNT(ID)>1
>
>
> Niks - du kan ikke have employee_id med i en group by-forespørgsel
> uden enten at gruppere på den eller aggregere den.


Derfor skrev jeg 'uden at have testeet syntaksen'

Jens Gyldenkærne Cla~ (29-11-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 29-11-07 12:52

ZiGGi skrev:

> ID (primary key)
> employee_id
> serial_num
>
> Jeg ønsker at returnere alle employee_id's som er registreret
> med mere end ét serial_num. Altså lige:

"HAVING" er din ven:

   SELECT employee_id, COUNT(*) as number
   FROM employees
   GROUP BY employee_id
   HAVING COUNT(*) > 1


WHERE bruges til kriterier på den enkelte post, mens HAVING bruges
til kriterier for gruppen.

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

ZiGGi (29-11-2007)
Kommentar
Fra : ZiGGi


Dato : 29-11-07 13:39

Perfekt!!!

Mange tak for tippet

/Michael


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
news:Xns99F782EBCAC39jcdmfdk@gyrosmod.dtext.news.tele.dk...
> ZiGGi skrev:
>
>> ID (primary key)
>> employee_id
>> serial_num
>>
>> Jeg ønsker at returnere alle employee_id's som er registreret
>> med mere end ét serial_num. Altså lige:
>
> "HAVING" er din ven:
>
> SELECT employee_id, COUNT(*) as number
> FROM employees
> GROUP BY employee_id
> HAVING COUNT(*) > 1
>
>
> WHERE bruges til kriterier på den enkelte post, mens HAVING bruges
> til kriterier for gruppen.
>
> --
> Jens Gyldenkærne Clausen
> Svar venligst under det du citerer, og citer kun det der er
> nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
> hvordan på http://usenet.dk/netikette/citatteknik.html



Jens Gyldenkærne Cla~ (29-11-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 29-11-07 14:46

ZiGGi skrev:

> Perfekt!!!
>
> Mange tak for tippet

Velbekomme. Hvis du vil gøre lidt til gengæld, må du gerne læse min
signatur.

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

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