Compute reply-based engagement metrics
Tools For HumanityData Scientist · Technical ScreenLast updated
This question evaluates proficiency in data manipulation and analytics, emphasizing SQL/Python skills for temporal filtering, joins between posts and users, deduplication, aggregation (distinct counts), and percentage calculations used to compute reply-based engagement metrics.
You work on a microblogging app (Twitter-like). Posts and replies are stored in the tables below.
Tables
all_post
post_idBIGINT PKpost_author_idBIGINT FK → user.user_id (author of this post/reply)post_creation_timeTIMESTAMP (assume UTC)post_typeVARCHAR (values:'post'for an original post,'reply'for a reply)post_contentTEXTpost_parent_idBIGINT NULL FK → all_post.post_id- For
post_type='reply',post_parent_idpoints to the post being replied to. - For
post_type='post',post_parent_idis NULL.
user
user_idBIGINT PKageINTcountryVARCHAR (e.g.,'US','CA', ...)
Task A
For each original post (post_type='post'), consider replies to that post where the reply was created within 7 days (inclusive) after the original post’s post_creation_time.
Return the number of distinct users (post_author_id of the original post) who have at least one original post that received ≥ 2 replies within that 7-day window.
Output:
num_users
Task B
A user “receives a reply” if any of their original posts received a reply.
Compute the percentage of users who received replies from at least two distinct repliers where both repliers are US users (user.country='US'). Repliers are the authors of the reply posts.
Output:
pct_users(as a percentage from 0 to 100)
Clarification: Use as denominator the number of distinct users who received at least one reply (i.e., exclude users who never received a reply).
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.