PracHub
QuestionsPremiumLearningGuidesInterview PrepNEWCoaches

Quick Overview

This question evaluates time zone–aware date bucketing, gapless calendar generation, and rolling-window aggregation skills, demonstrating competency in SQL-based data manipulation and temporal reasoning.

  • Medium
  • Thumbtack
  • Data Manipulation (SQL/Python)
  • Data Scientist

Compute weekly 3-week rolling sums in SQL

Company: Thumbtack

Role: Data Scientist

Category: Data Manipulation (SQL/Python)

Difficulty: Medium

Interview Round: HR Screen

Using PostgreSQL, write a single query that outputs, for each calendar week in a given range, the sum of amounts in that week and a rolling sum over the current week plus the prior two full weeks (3-week window). Requirements: (1) Define weeks by America/Los_Angeles local time, Monday–Sunday, and compute week_start_date as the LA-local Monday date for each week. (2) Generate a complete weekly calendar (include weeks with zero activity). (3) Treat missing weeks as zero in the rolling sum. (4) Ignore late-arriving data; use event_ts as the source of truth. (5) No temp tables; use CTEs, generate_series, and window functions. Provide the final SELECT and a brief explanation of how you handle time zone conversion before week-bucketing. Schema and sample data: Table: transactions Columns: - user_id INT - event_ts TIMESTAMPTZ -- stored in UTC - amount NUMERIC(12,2) Sample rows (UTC): +---------+-------------------------+--------+ | user_id | event_ts | amount | +---------+-------------------------+--------+ | 1 | 2025-08-04 16:00:00+00 | 12.00 | | 2 | 2025-08-05 18:30:00+00 | 7.50 | | 1 | 2025-08-12 20:10:00+00 | 5.00 | | 3 | 2025-08-19 15:05:00+00 | 9.00 | | 2 | 2025-08-20 02:45:00+00 | 11.00 | | 1 | 2025-08-26 12:00:00+00 | 3.00 | | 2 | 2025-09-02 21:10:00+00 | 8.00 | | 3 | 2025-09-09 14:25:00+00 | 10.00 | +---------+-------------------------+--------+ Output columns (one row per week in the range 2025-08-04 through 2025-09-15, LA-local): - week_start_date DATE (LA-local Monday) - wk_amount NUMERIC(12,2) - rolling_3wk_amount NUMERIC(12,2) Edge cases to handle: (a) weeks with no transactions should appear with wk_amount = 0, (b) events near midnight must be assigned to the correct LA-local week.

Quick Answer: This question evaluates time zone–aware date bucketing, gapless calendar generation, and rolling-window aggregation skills, demonstrating competency in SQL-based data manipulation and temporal reasoning.

Last updated: Mar 29, 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
  • 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

  • Compare list/dict; parse JSON/CSV at scale - Thumbtack (Medium)
  • Write monthly new-vs-returning requests SQL - Thumbtack (Medium)
  • Write complex joins and window functions - Thumbtack (Medium)
  • Compute weighted response rates by job category - Thumbtack (Medium)