Tellen met voorwaarden
George van Baasbank
08/11/2013 13:17:33Goedemiddag,
Ik zit met de volgende uitdaging voor mijzelf. Ik wil een query maken die:
1. Het aantal hits telt op mijn site (dus alle logs tellen)
2. Het aantal unieke bezoekers tellen (dus tellen op basis van (DISTINCT(ipadres))
3. Het aantal bezoekers tellen (dus tellen op basis van (DISTINCT(sessie))
Deze tellingen vind je terug in onderstaande code en werken.
Deze tellingen zijn van toepassing op het publieke deel van de site en werken.
Nu wil ik ook dezelfde tellingen gaan uitvoeren op het afgeschermde deel van de site, het deel waarvoor je dus moet inloggen.
In de logfile is hier het veld <lid> voor beschikbaar die dan gevuld is met "Ja" (anders "Nee")
Mijn vraag is dus nu: Hoe voeg ik deze voorwaarde toe aan mijn query;
Het tellen van ingelogd lukt wel maar hoe krijg ik nu de voorwaarde van de DISTINCT in combinatie met de voorwaarde van lid in dezze query?
Wie helpt mij?
George
Ik zit met de volgende uitdaging voor mijzelf. Ik wil een query maken die:
1. Het aantal hits telt op mijn site (dus alle logs tellen)
2. Het aantal unieke bezoekers tellen (dus tellen op basis van (DISTINCT(ipadres))
3. Het aantal bezoekers tellen (dus tellen op basis van (DISTINCT(sessie))
Deze tellingen vind je terug in onderstaande code en werken.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
SELECT
COUNT(DISTINCT(sessie)) AS aantalbezoeken,
COUNT(DISTINCT(ipadres)) AS aantaluniek,
COUNT(id) AS aantalhits
FROM
ove_logfile
WHERE
MONTH(datum) = '$nMeetMaand' AND YEAR(datum) = '$nMeetJaar'
COUNT(DISTINCT(sessie)) AS aantalbezoeken,
COUNT(DISTINCT(ipadres)) AS aantaluniek,
COUNT(id) AS aantalhits
FROM
ove_logfile
WHERE
MONTH(datum) = '$nMeetMaand' AND YEAR(datum) = '$nMeetJaar'
Deze tellingen zijn van toepassing op het publieke deel van de site en werken.
Nu wil ik ook dezelfde tellingen gaan uitvoeren op het afgeschermde deel van de site, het deel waarvoor je dus moet inloggen.
In de logfile is hier het veld <lid> voor beschikbaar die dan gevuld is met "Ja" (anders "Nee")
Mijn vraag is dus nu: Hoe voeg ik deze voorwaarde toe aan mijn query;
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
SELECT
COUNT(DISTINCT(sessie)) AS aantalbezoeken,
COUNT(DISTINCT(ipadres)) AS aantaluniek,
COUNT(IF(lid = 'Nee','Ja',NULL)) AS aantalhits,
COUNT(IF(lid = 'Ja','Ja',NULL)) AS ingelogd
FROM
ove_logfile
WHERE
MONTH(datum) = '10' AND YEAR(datum) = '2013'
COUNT(DISTINCT(sessie)) AS aantalbezoeken,
COUNT(DISTINCT(ipadres)) AS aantaluniek,
COUNT(IF(lid = 'Nee','Ja',NULL)) AS aantalhits,
COUNT(IF(lid = 'Ja','Ja',NULL)) AS ingelogd
FROM
ove_logfile
WHERE
MONTH(datum) = '10' AND YEAR(datum) = '2013'
Het tellen van ingelogd lukt wel maar hoe krijg ik nu de voorwaarde van de DISTINCT in combinatie met de voorwaarde van lid in dezze query?
Wie helpt mij?
George
Gewijzigd op 08/11/2013 13:22:27 door George van Baasbank
PHP hulp
17/11/2024 09:36:12Als je alleen wilt tellen voor de ingelogden, dan filter je die eerst met een subquery eruit en daar boer je de telling op uit.