PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCareers

Quick Overview

This question evaluates a candidate's ability to perform advanced data manipulation and analytical SQL tasks, including joins, aggregations, timezone-aware date handling, rolling window metrics, distinct user counting, and counting user participations across roles.

  • hard
  • Meta
  • Data Manipulation (SQL/Python)
  • Data Scientist

Compute High-Call Usage Rates

Company: Meta

Role: Data Scientist

Category: Data Manipulation (SQL/Python)

Difficulty: hard

Interview Round: Technical Screen

You are given two tables for a voice-calling product: `users` - `user_id` BIGINT - `country_code` STRING `calls` - `call_id` BIGINT - `caller_id` BIGINT - `recipient_id` BIGINT - `started_at` TIMESTAMP `calls.caller_id` and `calls.recipient_id` both reference `users.user_id`. Assume: - Every row in `calls` is one valid call event. - All timestamps are stored in UTC. - Any date-based metric should be computed in the `Europe/London` timezone. - `report_date` is a calendar date in `Europe/London`. Write SQL to compute the following metrics for each `report_date`: 1. **Percentage of callers with at least 20 calls in the last 7 days** - Use the 7-day window ending on `report_date`, inclusive. - The numerator is the number of distinct users who initiated at least 20 calls in that 7-day window. - The denominator is the number of distinct users who initiated at least 1 call in that same 7-day window. 2. **Percentage of Great Britain DAU with at least 50 total calls** - Restrict to users with `country_code = 'GB'`. - Define daily active users as distinct GB users who either placed or received at least one call on `report_date`. - For each such user, count total call participations on `report_date`, where participations include both outgoing calls as `caller_id` and incoming calls as `recipient_id`. - The numerator is the number of GB DAU with at least 50 total call participations on `report_date`. - The denominator is all GB DAU on `report_date`. Return one row per `report_date` with these columns: - `report_date` - `pct_callers_20plus_last_7d` - `pct_gb_dau_50plus_calls`

Quick Answer: This question evaluates a candidate's ability to perform advanced data manipulation and analytical SQL tasks, including joins, aggregations, timezone-aware date handling, rolling window metrics, distinct user counting, and counting user participations across roles.

Last updated: May 7, 2026

Loading coding console...

PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • Careers
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.

Related Coding Questions

  • Compute ad impression conversion rates - Meta (medium)
  • Count unconnected posts and reactions - Meta (medium)
  • Count heavy callers in 7 days - Meta (medium)
  • Write SQL for call metrics - Meta (medium)
  • Write SQL for multi-account metrics - Meta (medium)