sql >> Database teknologi >  >> NoSQL >> MongoDB

Finder du huller i store begivenhedsstrømme?

Du kan gøre dette med lag() vinduesfunktion over en partition af stream_id, som er sorteret efter tidsstemplet. lag() funktion giver dig adgang til tidligere rækker i partitionen; uden en forsinkelsesværdi er det den foregående række. Så hvis partitionen på stream_id er ordnet efter tid, så er den forrige række den forrige hændelse for det stream_id.

SELECT stream_id, lag(id) OVER pair AS start_id, id AS end_id,
       ("timestamp" - lag("timestamp") OVER pair) AS diff
FROM my_table
WHERE diff > interval '2 minutes'
WINDOW pair AS (PARTITION BY stream_id ORDER BY "timestamp");


  1. Krypter adgangskodefelter i mongodb

  2. Hvordan opsætter du Mongo-replikasæt på Kubernetes?

  3. Mongoose returnerer altid et tomt array NodeJS

  4. MongoDB find hvor nøgle er lig med streng fra array