Hirdetés

Új hozzászólás Aktív témák

  • nyunyu

    félisten

    válasz kw3v865 #4995 üzenetére

    Nem lenne egyszerűbb az időbélyegek különbsége alapján számolni?

    SQL szabvány szerint mint a dátum, mind az időbélyeg típusok kivonhatóak egymásból és akkor kapsz egy időintervallumot.
    Vagy dátum+időintervallum=dátum, időbélyeg+időintervallum=időbélyeg!

    Én legalábbis úgy nézném meg, hogy mi a legsűrűbben logolt környék, hogy önmagával összejoinolnám a táblát, hogy a második rekord időbélyege nagyobb legyen, mint az elsőé, és a különbségük egy percen belül legyen, aztán ezt a halmazt group by-olnám az első időbélyegre, és megszámolni, hány második tartozik hozzá.

    valami ilyesmire gondoltam:
    SELECT y.date, y.cnt
    FROM (
    SELECT x.date, count(x.date2) cnt
    FROM (
    SELECT a.date, b.date as date2
    FROM table a
    JOIN table b
    ON b.date > a.date
    AND b.date < a.date + interval '1' minute) x
    GROUP BY x.date) y
    ORDER BY y.cnt desc;

    Itt az erős join miatt csak azokat az dátumokat/időbélyegeket fogod visszakapni, ahol egy percen belül volt legalább egy másik bejegyzés.
    Magányos, kósza bejegyzéseket nem! (mondjuk a b.date >= a.date feltétellel azokat is figyelembe lehetne venni.)

Új hozzászólás Aktív témák