Toon posts:

[mysql] Som van count() waarden

Pagina: 1
Acties:
  • 153 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi,

Ik wil van een aantal waarden de relatieve frequentie weten. Om het totaal aantal kliks op te vragen uit een tabel moet ik de som hebben van het aantal keer dat 'url' in de tabel staat.

Ik heb onderstaande query gefabriceerd, maar dat werkt niet. Hoe moet het anders? Ik wil het graag met mysql doen :)

code:
1
SELECT COUNT(url) AS aantal, SUM(aantal) AS totaal FROM mail_clicks WHERE mailing_id = '".$mailing_id."' GROUP BY url

[ Voor 13% gewijzigd door Verwijderd op 27-08-2003 11:47 ]


Verwijderd

code:
1
SELECT COUNT(url) AS aantal FROM mail_clicks GROUP BY url


Dit geeft al het aantal dat url voorkomt in je mail_clicks...

Verwijderd

Topicstarter
Ja, precies. En daarvan wil ik de som hebben :)
En ik had de WHERE er uitgelaten :)

[ Voor 29% gewijzigd door Verwijderd op 27-08-2003 11:48 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Waarom gebruik je een GROUP BY url als je nergens url gebruikt in je select - list?

Aangezien aantal geen veld is in een tabel, kan je dat dus ook niet op die manier:
code:
1
sum(aantal)
gaan gebruiken.

Neem er anders ook eens een sql tutorial bij.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Verwijderd schreef op 27 August 2003 @ 11:46:
Ja, precies. En daarvan wil ik de som hebben :)
Waarom?

Of je doet:
code:
1
select url, count(url) from tabel group by url

Dan krijg je het aantal keer dat iedere 'url' voorkomt in de tabel

of je doet
code:
1
select count(distinct url) from tabel


Dan krijg je het aantal vershillende url's in je tabel.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ja, beetje dom. Ik wilde het totaal aantal hebben. Zo dus :)

code:
1
SELECT COUNT(*) AS totaal FROM mail_clicks WHERE mailing_id = '".$mailing_id."'

Verwijderd

whoami schreef op 27 August 2003 @ 11:47:


Neem er anders ook eens een sql tutorial bij.
offtopic:
Geheel offtopic: Dat vindt ik echt een veel te makkelijke uitspraak... Aan de query te zien die de TS zelf al heeft gefabriceerd is hij echt geen SQL noob en komt hij er gewoon in dit geval eventjes niet uit. Kan toch?

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Verwijderd schreef op 27 August 2003 @ 12:06:
[...]


offtopic:
Geheel offtopic: Dat vindt ik echt een veel te makkelijke uitspraak... Aan de query te zien die de TS zelf al heeft gefabriceerd is hij echt geen SQL noob en komt hij er gewoon in dit geval eventjes niet uit. Kan toch?
Ik zie dat veel mensen hier de fout in gaan met hun GROUP BY clausule. (En ik denk dat veel te wijten is aan de laksheid van MySQL hiermee).
Een GROUP BY gebruik je:
- enkel als je aggregated functions gebruikt (ok dat doet hij)
- in je group by zet je alle velden die in je select-list voorkomen en die geen aggregated function zijn

MySQL is de enige DBMS die ik ken die zo los met die GROUP BY omgaat. Je moet eens alle MySQL queries die hier in P&W gepost zijn en die gebruik maken van een GROUP BY eens op SQL Server of Oracle proberen. 90% ervan gaat niet werken (ja, zelfs als je de MySQL - specifieke functies eruit gehaald hebt).

https://fgheysels.github.io/


  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
whoami schreef op 27 augustus 2003 @ 12:14:
[...]

MySQL is de enige DBMS die ik ken die zo los met die GROUP BY omgaat. Je moet eens alle MySQL queries die hier in P&W gepost zijn en die gebruik maken van een GROUP BY eens op SQL Server of Oracle proberen. 90% ervan gaat niet werken (ja, zelfs als je de MySQL - specifieke functies eruit gehaald hebt).
MySQL noemt dit zelf een feature. Overigens kan je MySQL zo instellen dat hij wel netjes de ANSI-SQL standaard volgt.
Speciaal voor de error_reporting(E_ALL)-puristen onder ons. :+

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18-08 21:00

Creepy

Tactical Espionage Splatterer

bigtree schreef op 27 augustus 2003 @ 22:37:
[...]

MySQL noemt dit zelf een feature. Overigens kan je MySQL zo instellen dat hij wel netjes de ANSI-SQL standaard volgt.
Speciaal voor de error_reporting(E_ALL)-puristen onder ons. :+
Don't use this feature if the columns you omit from the GROUP BY part aren't unique in the group! You will get unpredictable results.
En bij die "feature" zetten ze ook een grote warning. Als zo'n feature zomaar onvoorspelbare resultaten gaat geven hadden ze van mij die feature eruit mogen laten.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Creepy schreef op 28 August 2003 @ 08:53:
[...]


[...]

En bij die "feature" zetten ze ook een grote warning. Als zo'n feature zomaar onvoorspelbare resultaten gaat geven hadden ze van mij die feature eruit mogen laten.
ach je moet gewoon opletten wat je doet :+ en dat is met alles zo dus.....
Pagina: 1