Data analyst interview prep · Southeast Asia
The SQL round is where most data analyst applications in Malaysia stop.
Learn it. Prove it. Rehearse it.
Practise the exact SQL and Excel questions Grab, Shopee and Maybank actually ask — graded instantly, in your browser, free to start.
99 SQL questions · 29 SQL chapters · free, no signup to start
Where to start
SQL is this role's daily tool, not one line on the job spec. A four-level path from your first SELECT to the schema and performance questions a senior analyst gets asked.
- 01
Get the interview
Can you write the query at all. The syntax every SQL interview screens for.
- 02
Don't break things in your first 90 days
The traps that don't show up in a syntax test: NULLs, timezones, silent dedup, a number that doesn't match the dashboard.
- 03
Be trusted with a question
Own an analysis end to end — window functions, subqueries, and a real take-home with a written deliverable, not just a query.
- 04
Senior signals
Schema design, index and query performance, and reading an experiment result — what separates a senior analyst from someone who just knows more SQL functions.
How it works
One path, from your first query to the interview.
Learn
Two curricula and a schema-design primer, ordered start to finish, every example runnable.
Practise
Graded instantly against the full result set — a real Postgres compiled to WebAssembly, running in your browser.
Rehearse
The formats a real interview loop actually uses — not just more questions.
AI coach
It reads your query, not a script.
Get something wrong and the coach looks at the exact query you wrote — your table names, your logic, your specific mistake — and tells you what's off without handing you the answer. Free, 3 sessions a day.
Try it on a question→Grab · Completed rides by city
SELECT city, COUNT(*) AS completed_rides FROM rides GROUP BY city;
AI coach
You're grouping by city and counting all rides regardless of status, which is why Ipoh (with no completed rides) is included incorrectly. Try filtering the rides first to include only those with status = 'completed' before grouping—that will fix the count and exclude cities without completed rides. This approach is both clearer and more efficient for your goal. Keep going, you're very close!
The curriculum
29 chapters, in order
Single-table fundamentals: read, filter, sort, and reshape data.
- 01 · Start here: SQL & this tutorial
- 02 · SELECT: reading data
- 03 · WHERE: filtering rows
+ 10 more
Summarize data and combine it across tables.
- 14 · Aggregate functions: SUM, AVG, COUNT, MIN, MAX
- 15 · GROUP BY: one row per group
- 16 · HAVING: filtering groups, not rows
+ 4 more
Multi-step reasoning: the questions that separate candidates.
- 21 · Query execution order
- 22 · Subqueries & CTEs
- 23 · Window functions
+ 6 more
Basic — RM 25/mo
Free gives you the answer. Basic teaches you why.
Every question ships with a stepwise walkthrough and the interviewer's next question — gated even on free questions, because that's the moment a real interview keeps going. Basic also unlocks the full bank, the take-home round, Data Lab (beta), a higher daily AI coach limit, and a dashboard with a review queue that gets more useful the longer you use it.
See pricing→Shopee · Running total of daily sales
Free
A 4-hint scaffold walks you from a blank query to the answer, one nudge at a time — never just the solution.
Basic — the interviewer's next question
Nice — the running total works. Now add a column showing each day's amount as a percentage of the whole campaign's total (pct_of_total), rounded to one decimal place.
The question bank
A taste of what you'll solve
Add a primary key to an unkeyed orders table
schema-design→Absolute difference and relative lift
experimentation→Busiest data center in each region
window→Applicants with no referral code on file
basics→Accounts above their own branch's average
subquery→Charge each payout its tier's fee
math→Your next data interview starts here.
Start the Data Analyst path, or jump straight into the question bank. Both are free, and neither asks you to sign up first.