MySQL versie: 3.23
stats_main_session:
`idvisitor` int(11)
`date` timestamp(14)
`page` varchar(255)
`refferer` varchar(255)
Op verzoek van LuCarD plaats ik ook de andere tabel en een aantal voorbeeld rijen.
Meer tabellen zijn er niet.
stats_main:
- `id` int(11)
- `idwebsite` int(11)
- `date` timestamp(14)
- `refferer` varchar(255)
- `user_ip` varchar(39)
- `user_browser` int(11)
- `user_browserv` varchar(5)
- `user_os` int(11)
- `user_res_width` int(11)
- `user_res_height` int(11)
- `user_lang` varchar(5)
- `search` varchar(255)
De tabel "stats_main" wordt 1 keer gevuld bij het eerst bezoek.
Darna wordt de pagina opgeslagen waar de bezoeker binnenkomt in "stats_main_session".
Vervolgens worden alle bezochte pagina's van deze bezoeker ook opgeslagen in "stats_main_session" en wordt "stats_main" niet meer gebruikt.
Voorbeeld inhoud stats_main_session:
Voorbeeld inhoud stats_main_session:
Ik probeer met de volgende query de unieke bezoekers en het totaal aantal bezoeken per uur, per dag weer te geven.
Nu krijg ik alle gegevens terug die erin staan (3337 resultaten), terwijl het er 193 moeten zijn.
Het rare is, als ik een limit 0, 2000 toevoeg er wel 193 resutaten teruggegeven worden
Als ik de regel "COUNT(DISTINCT idvisitor) AS uvisitors" weghaal, dan krijg ik ook netjes 193 resultaten terug.
Gebruik ik de count(distinct) verkeerd of klopt er ergens anders iets niet?
stats_main_session:
`idvisitor` int(11)
`date` timestamp(14)
`page` varchar(255)
`refferer` varchar(255)
Op verzoek van LuCarD plaats ik ook de andere tabel en een aantal voorbeeld rijen.
Meer tabellen zijn er niet.
stats_main:
- `id` int(11)
- `idwebsite` int(11)
- `date` timestamp(14)
- `refferer` varchar(255)
- `user_ip` varchar(39)
- `user_browser` int(11)
- `user_browserv` varchar(5)
- `user_os` int(11)
- `user_res_width` int(11)
- `user_res_height` int(11)
- `user_lang` varchar(5)
- `search` varchar(255)
De tabel "stats_main" wordt 1 keer gevuld bij het eerst bezoek.
Darna wordt de pagina opgeslagen waar de bezoeker binnenkomt in "stats_main_session".
Vervolgens worden alle bezochte pagina's van deze bezoeker ook opgeslagen in "stats_main_session" en wordt "stats_main" niet meer gebruikt.
Voorbeeld inhoud stats_main_session:
| id | idwebsite | date | refferer | user_ip | user_browser |
| 4044 | 1 | 20070809162923 | http://... | 1.1.1.1 | 9 |
| user_browserv | user_os | user_res_width | user_res_height | user_lang | search |
| 6 | 1 | 1280 | 768 | nl | blaat |
Voorbeeld inhoud stats_main_session:
| idvisitor | date | page | refferer |
| 4044 | 20070809162923 | http://... | http://... |
| 4044 | 20070809162946 | http://... | http://... |
| 4044 | 20070809162948 | http://... | http://... |
| 4044 | 20070809163003 | http://... | http://... |
| 4044 | 20070809163007 | http://... | http://... |
Ik probeer met de volgende query de unieke bezoekers en het totaal aantal bezoeken per uur, per dag weer te geven.
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| SELECT DATE_FORMAT(date, '%d-%H') AS selection, DAYOFMONTH(date) AS day, HOUR(date) AS hour, COUNT( idvisitor ) AS tvisitors, COUNT(DISTINCT idvisitor) AS uvisitors FROM stats_main_session WHERE YEAR(date) = YEAR(CURDATE()) AND MONTH(date) = MONTH(CURDATE()) GROUP BY selection ORDER BY selection ASC |
Nu krijg ik alle gegevens terug die erin staan (3337 resultaten), terwijl het er 193 moeten zijn.
Het rare is, als ik een limit 0, 2000 toevoeg er wel 193 resutaten teruggegeven worden
Als ik de regel "COUNT(DISTINCT idvisitor) AS uvisitors" weghaal, dan krijg ik ook netjes 193 resultaten terug.
Gebruik ik de count(distinct) verkeerd of klopt er ergens anders iets niet?
[ Voor 58% gewijzigd door Verwijderd op 20-08-2007 16:49 ]