[MySQL] Berekeningen op tabel uitvoeren

Pagina: 1
Acties:

  • narotic
  • Registratie: Maart 2002
  • Laatst online: 02-11-2021
Na nu al een paar uur met dit probleem bezig geweest te zijn heb ik nu maar besloten het hier te posten. Het zit als volgt.
Ik hou in MySQL een tabel bij met stats van een site. Deze tabel heeft bv. de volgende kolommen:

bezoeker | domein | aantal bezoeken | aantal posts


Nu kan een bezoeker vanaf verschillende domeinen komen en er kunnen verschillende bezoekers van een domein komen.

Uit deze gegevens wil ik vervolgens een paar conclusies trekken, bijvoorbeeld voor welk percentage bezoeken een bezoeker (ongeacht domein) goed is geweest.
Het aantal bezoeken per bezoeker ongeacht domein kan met de volgende query:

code:
1
select bezoeker, SUM(aantalBezoeken) AS totaalBezoeken FROM stats GROUP BY bezoeker;


Echter, nu kan ik de bovenstaande simpele berekening niet uitvoeren, aangezien de SUM alleen de som van de desbetreffende groep opgeeft, en niet van de totale kolom. Weet iemand hoe ik toch de som van de totale kolom kan krijgen en ook die van de groep, zodat ik er een beetje mee kan rekenen?

PS:
Ja, ik weet dat het makkelijk vervolgens in php te doen is, ik wil echter op simpel op kolom kunnen sorteren, wel zo makkelijk als de results dan kant en klaar zijn, dan kan het dmv ORDER BY;
Nee, SUM(totaalBezoeken) werkt niet...ik had echt verwacht dat het daarmee wel te doen zou zijn...

- = Step Into The Pit | Industrial Strength = -


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Wat jij wil kan niet met 1 query voor alle bezoekers. Je kan niet twee verschillende SUM's doen, want je hebt maar 1 groupeer clause.
Wel kan je voor 1 gebruiker beide getallen in één query ophalen.
je doet dan geen group by bezoeker en in je select heb je naast de sum(aantalbezoeken) ook de volgende sum : SUM(if(bezoeker, &bezoeker, aantalbezoeken, 0))
In de tweede sum tel je dus alleen de aantallen bezoeken van de bezoeker met ID &bezoeker mee.
Duidelijk?