[MySQL] Oldalletöltések és csoportosítás
Üdv!
Ezzel a lekéréssel itt megkapom órákra / napokra ... lebontva, hogy hány oldalletöltés történt. Azt vártam, hogy csak az egyszeri oldalletöltéseket számolja (count(loadIp)), de nem.
$starttime/end: unix idő
$divide: a start és end között ennyi másodperces időközök
$items: start/end között ennyi elem legyen maximum /nem releváns/
loadIp (int): IP azonosítóFelvetődött a lehetséges megoldás, miszerint még loadIp szerint is csoportosítani kéne, de ha ezt teszem, akkor az adott intervallumon (start/end) belül maximum 1x szerepel, ez pedig nem jó.
Tehát: egy adott időintervallumban akarom megtudni oldalletöltésekből, hány egyedi látogató volt óránként, naponta, stb.
Milyen ötleteitek vannak, hogyan lehetne megoldani, hogy csak az egyedi látogatók számát tartalmazza a `loads`?
/Ha valami extrém alap dolgot néztem be, elnézést. :)/
■ Ezzel a lekéréssel itt megkapom órákra / napokra ... lebontva, hogy hány oldalletöltés történt. Azt vártam, hogy csak az egyszeri oldalletöltéseket számolja (count(loadIp)), de nem.
$starttime/end: unix idő
$divide: a start és end között ennyi másodperces időközök
$items: start/end között ennyi elem legyen maximum /nem releváns/
loadIp (int): IP azonosító
SELECT COUNT(loadIp) AS loads, loadTime AS whenhappened FROM loads WHERE loadTime BETWEEN $starttime AND $endtime GROUP BY loadTime DIV $divide ORDER BY loadTime ASC LIMIT $items
Tehát: egy adott időintervallumban akarom megtudni oldalletöltésekből, hány egyedi látogató volt óránként, naponta, stb.
Milyen ötleteitek vannak, hogyan lehetne megoldani, hogy csak az egyedi látogatók számát tartalmazza a `loads`?
/Ha valami extrém alap dolgot néztem be, elnézést. :)/
count(distinct ...)
MySQL-ben írhatsz egy "distinct"-et a count() belsejébe a mező kifejezés elé és ilyenkor a számolás értéke az adott kifejezés egyedi előfordulásainak számát adja majd (vagyis hány egyedi ip volt az adott group by-on belül), szóval valami ilyesmi:
Köszönöm! Pontosan ezt
Most jutottam el oda, hogy utánanézzek a count-nak /reggel volt este/. Gondoltam, hogy kb. ennyi lesz. :)