[SQL]Group by count

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • van.der.schulting
  • Registratie: Juli 2002
  • Laatst online: 09-08-2024
Ik wil een tabel groeperen op advertisement_id en vervolgens tellen hoeveel advertisement_ids 1x, 2x, 3x etc. voorkomt.

Het lukt me niet om de juiste SQL Query hiervoor te produceren.
Wat ik nu doe is het volgende:
De volgende SQL Query voer ik uit voor x=1, 2, 3, 4 en 5
code:
1
SELECT `mails`.* FROM `mails`  GROUP BY advertisement_id HAVING count(*)=x"

Per query tel ik hoeveel rijen ik terug krijg. Zo weet ik hoeveel advertisement_ids 1x voorkomen, 2x etc.

Volgens mij kan dit veel simpeler, maar ik kom er wat betreft SQL niet uit. Kan iemand me opweg helpen?

Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Dit is wel vrij basis SQL, ik kan je aanraden eens een tutorial te lezen ;)

Anyway, een kleine aanpassing is al voldoende
SQL:
1
2
3
SELECT `mails`.advertisement_id, count(*)
FROM `mails`
GROUP BY advertisement_id

[ Voor 3% gewijzigd door Wolfboy op 05-05-2012 02:39 ]

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

Hoe werkt dat group by nu eigenlijk?
Ik zou deze zeker even doorlezen.
Niet lullig bedoeld, maar is zeer goed leesmateriaal :)

[ Voor 42% gewijzigd door Afvalzak op 03-05-2012 14:35 ]

Last.fm | Code Talks


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Die query hierboven gebruiken, en daar weer een query op doen. Krijg je iets als
SQL:
1
2
3
4
5
select mailcount, count(*) from
   (SELECT count(*) as mailcount 
   FROM `mails`
   GROUP BY advertisement_id) as mailcounts
group by mailcount

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Nu online

Dido

heforshe

mmm
Verschillende tips om een incomplete group_by the gebruiken.

En dat zonder dat we weten welek dbms re gebruikt wordt?

Tenzij er maar 1 kolom in tabel mails staat, is het pertinent af te raden om alleen een group by op 1 kolom te gebruiken :)

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Dido schreef op donderdag 03 mei 2012 @ 14:53:
mmm
Verschillende tips om een incomplete group_by the gebruiken.

En dat zonder dat we weten welek dbms re gebruikt wordt?

Tenzij er maar 1 kolom in tabel mails staat, is het pertinent af te raden om alleen een group by op 1 kolom te gebruiken :)
Hij gebruikt backticks om te escapen, naar mijn weten doet alleen MySQL dat ;)

Neemt niet weg dat het een slecht idee is, ik was gewoon lui :+

[ Voor 7% gewijzigd door Wolfboy op 05-05-2012 02:39 ]

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
NOFI, maar als je gewoon lui was, geef dan geen advies, daar heeft de TS meer aan dan foutief advies

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Woy schreef op zaterdag 05 mei 2012 @ 10:09:
NOFI, maar als je gewoon lui was, geef dan geen advies, daar heeft de TS meer aan dan foutief advies
Aangezien het gewoon werkt in MySQL is het niet foutief, dat het volgens de SQL standaard niet klopt is een ander verhaal.

Blog [Stackoverflow] [LinkedIn]

Pagina: 1