sql >> Databasteknik >  >> NoSQL >> MongoDB

Hitta luckor i stora evenemangsströmmar?

Du kan göra detta med lag() fönsterfunktion över en partition av stream_id som är sorterad efter tidsstämpeln. lag() funktionen ger dig tillgång till tidigare rader i partitionen; utan eftersläpningsvärde är det föregående rad. Så om partitionen på stream_id är ordnad efter tid, är den föregående raden den föregående händelsen för 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. Jämför två datumfält i MongoDB

  2. kan inte uppdatera ett dokument via 'findById' och save() med löfte

  3. Få en lista över alla unika taggar i mongodb

  4. Hur konverterar man mongodb ISODate till sträng i mongoDB?