groupbyrank

The full problem statement is available to Pro members.

preloaded fixtures

import pandas as pd
import numpy as np

sales = pd.DataFrame({
    "order_id": [1, 2, 3, 4, 5, 6, 7, 8],
    "customer": ["ada", "grace", "ada", "alan", "grace", "marie", "alan", "ada"],
    "country": ["UK", "USA", "UK", "UK", "USA", "France", "UK", "UK"],
    "category": ["hardware", "audio", "audio", "furniture", "hardware", "audio", "hardware", "furniture"],
    "units": [1, 2, 1, 3, 1, 2, 4, 1],
    "price": [129.0, 249.99, 199.0, 420.0, 329.5, 249.99, 59.0, 540.0],
    "rating": [4.5, np.nan, 3.0, 5.0, np.nan, 4.0, 4.5, 2.5],
})

customers = pd.DataFrame({
    "customer": ["ada", "grace", "alan", "hedy"],
    "segment": ["pro", "pro", "starter", "starter"],
})

Guest mode · solve history stays on this device; code isn’t saved. Sign in to save future work

Pro problem

“Rank within groups”

This is one of the real interview questions in Pro. Try Pro free for 7 days to unlock it and everything below:

  • 293 interview-grade problems across SQL, Python & pandas
  • 104+ real-world SQL problems: SaaS retention, fintech ledgers, supply chain, recursive CTEs
  • 18 company interview packs (Amazon, Meta, Google, Uber and more)
  • AI "explain my mistake" tutor and mock interviews
  • Use QueryLab inside Claude, Cursor & other AI assistants

// built for real interview rounds

Practice the patterns 18 top companies test

329 problems · 36 free forever · 293 unlocked with Pro

Card required. Then $12/month. Cancel before your trial ends and you pay nothing.

or keep practicing free problems →

Secure checkout by Paddle · instant access · cancel anytime from your account