Hirdetés

2024. május 3., péntek

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  SQL kérdések (kiemelt téma)

Hozzászólások

(#4995) kw3v865


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?

Útvonal

Fórumok  »  Szoftverfejlesztés  »  SQL kérdések (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.