SQL QuestSQL Interview Questions › String Functions

Email Provider Customer Analysis

MediumFreeQuerying BasicsString FunctionsAggregation & GroupingConditional Logic

Group customers by their email domain (part after @). For each domain show: domain, customer_count, gold_members (count with membership = 'Gold'), avg_total_orders (average of total_orders column, 1 dec). Sort by customer_count descending.

Solve it in the browser editor →

Runs on SQLite in your browser, graded against the expected result, no signup. A wrong answer gets a diagnosis, not just "incorrect".

Schema

customers

customer_idnameemailsignup_datemembershiptotal_orders
1John Smithjohn.smith@email.com2023-01-15Gold15
2Emma Wilsonemma.wilson@email.com2023-03-20Silver8
3Michael Brownmichael.brown@email.com2023-02-10Gold12

Expected output: domain='gmail.com' with customer metrics

Hint

SUBSTR(email, INSTR(email, '@') + 1) extracts the domain. GROUP BY domain, then use SUM(CASE WHEN membership = 'Gold' THEN 1 ELSE 0 END) for gold count

Concepts

SELECT String Functions GROUP BY Aggregation ORDER BY CASE

Practise the topic: SQL practice questions · String function practice · GROUP BY exercises · CASE WHEN practice

In these company practice sets

Google · Snowflake

A SQL Quest challenge matched to patterns reported for these companies — not a question any of them has published.

Related questions

Department Roster with GROUP_CONCATMedium · FreeTitle Social Survival AnalysisMedium · FreeEmail Username Extract (SUBSTR + INSTR)Medium · FreeTrust and Savings BanksMedium · FreeLLC vs Individual BuyersMedium · FreeLong-Named PassengersEasy · Free

Where would this cost you points in an interview?

Ten questions, no signup: a Skillmap across nine SQL skills and the one to fix first.

Take the readiness test