Hirdetés

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

  • kw3v865

    senior tag

    Üdv!

    PostgreSQL-ben timestamp alapján szeretnék GROUP BY-olni a következő módon: adott egy timestamp mező másodperces felbontásban és a cél az lenne, hogy azok a sorok kerüljenek összevonásra, amelyek közül a min és a max közti időkülönbség nem nagyobb 1 percnél.
    Tehát pl. a '2021-06-08 10:11:34' és a '2021-06-08 10:12:10' össze kell, hogy vonódjon. Addig megoldottam, hogy perces bontásban legyenek csoportosítva, de ez így nem az igazi, mivel 2 másodperc különbség miatt (változik a perc, egyiknél 0 perc 59 másoderc, másiknál 1 perc 01 másodperc) is külön csoportba kerülnek.

    Jelenleg így néz ki:

    SELECT 
      COUNT(*), 
       date_trunc('hour', datetime) +   (
        (
          (
          date_part('minute', datetime):: integer / 1 :: integer
          ) * 1 :: integer
        )   || ' minutes'
      ):: interval AS one_min_timestamp 
    FROM 
      table 
    GROUP BY 
      one_min_timestamp 
    ORDER BY 
      one_min_timestamp;

    Van esetleg valami tippetek miként lehetne ezt továbbfejleszteni a fentebb felvázolt módon?

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