Context
You work on a social app where users can view posts. A view can be from a connected user (viewer is friends/connected with the post author) or unconnected (not connected).
Tables
Assume the following schema (UTC timestamps):
post_views
-
view_id
STRING (PK)
-
post_id
STRING
-
viewer_id
STRING
-
view_ts
TIMESTAMP (UTC)
-
view_duration_seconds
INT
-
is_connected
BOOLEAN
-
TRUE
if the viewer is connected to the post’s author at the time of view
Task
Write a SQL query to find posts whose total unconnected view time in the last 7 days is greater than 60 seconds.
Requirements
-
Time window:
[current_timestamp - 7 days, current_timestamp)
in UTC.
-
Only include unconnected views:
is_connected = FALSE
.
-
Aggregate per
post_id
.
Output
Return:
-
post_id
-
unconnected_view_seconds_7d
(sum of
view_duration_seconds
over the window)
Order by unconnected_view_seconds_7d descending.