runtime
Social Product Analytics · milestone 01 / 04

milestone 1/4 Deduplicate event retries

Identify repeated events and keep a consistent record.

Social Product Analytics · Clean event retries, reconstruct ordered funnels, sessionize activity, and compare experiment conversions.

approach

Ingestion retries can produce several physical rows for one logical event. Define the event key and which version wins. ROW_NUMBER per event_key, ordered by ingested_at and id descending, keeps the latest version.

worked-example.sql
WITH ranked AS(
  SELECT
    *,
    ROW_NUMBER() OVER( PARTITION BY event_key ORDER BY ingested_at DESC,id DESC ) AS rn
  FROM social_events
)
SELECT id,event_key,member_id
FROM ranked
WHERE rn=1;

data for this milestone

social_events6 columns · 22 rows
idinteger · keyevent_keytextmember_idintegerevent_typetextevent_attextingested_attext
1a1view2025-01-01 10:00:002025-01-01 10:00:01
2b1signup2025-01-01 10:03:002025-01-01 10:03:01
3c1purchase2025-01-01 10:05:002025-01-01 10:05:01
4a1view2025-01-01 10:00:002025-01-01 10:10:00
5d2view2025-01-02 09:00:002025-01-02 09:00:01

showing 5 of 22 rows

challenge 1

Return id, event_key and member_id for the latest ingested row of each event_key. Break ingestion ties by highest id.

Return idevent_keymember_idany row order

challenge-1.sql
 
3 steps left · check both queries and pass the concept checkNext milestone
Deduplicate event retries — Social Product Analytics · Runtime