SQL for Excel users
Nothing here is skippable, because you have never written SQL. But 10 of the 26 skills are things you already do in a spreadsheet under another name, which is the difference between about 33 hours and 47. The traps are joins that duplicate rows and blanks that quietly vanish.
- You build pivot tables without thinking about it and write lookup formulas across sheets.
- You have a workbook somebody else depends on, with more than one tab feeding it.
- You have never had to say out loud what one row of your result is supposed to mean.
Things you already do, under another name
The columns you keep and rename in a sheet are the whole of a SELECT list.
The difference is which way round the default runs. A spreadsheet shows you everything and you hide what you do not want; a query returns nothing you did not ask for, so a column you forgot is silence rather than a visible gap.
Autofilter, sort and show top rows are filtering, ordering and limiting.
A sheet filter is a view you can see through — the hidden rows are still there and the row numbers jump to prove it. A query's filter removes them, so a condition that is subtly wrong gives you a smaller, entirely plausible table with nothing to notice.
A pivot table is a GROUP BY with the grain chosen by dragging.
The dragging is doing work you will have to do in words: deciding what one row of the result means, and naming every column you want across the top before you run it rather than letting the tool discover them.
SUM, AVERAGE and COUNTA are aggregate functions, blank cells and all.
A lookup formula is an inner join that has already decided what to do about a miss.
A lookup returns one match per row and an error where there is none.1 A join returns every match, so two matching rows in the other table means two rows out, and a total that was right before the join is now double. This is the single most expensive habit to bring across.
Remove Duplicates is the same instinct as DISTINCT, applied at a different moment.
In a sheet you do it once, at the end, to a table you can see. In a query it matters where you do it — a DISTINCT after a join hides the duplication the join caused instead of fixing it, and the totals stay wrong.
Grouping dates by month in a pivot is date truncation.
A pivot shows the months that appear in the data. A time series usually has to show the ones that do not, because a period with no rows is exactly the period somebody will ask about.
You have been burned by a sheet deciding that a product code was a number.
Same failure, opposite manners. A spreadsheet guesses and reformats silently; a database refuses and names the value it could not read. The better failure, and the noisier one.
Open to you today
What none of this covers
- foundations
- aggregation
- joins
- composition
- windows
- analysis
- performance
Briefs you could not hand in today
Sources, and what each is worth
Questions that come with this one
Will I still need spreadsheets?
Yes, and nothing here pretends otherwise. What changes is which half of the work goes where — the query answers the question at a grain you can state, and the sheet is where somebody reads the answer.
Is XLOOKUP closer to a join than VLOOKUP is?
Closer in manners, not in kind. It still returns one match per row, which is the assumption a join drops, and dropping it is how a total that was right becomes a total that is double.
How long does it take from a standing start?
It is a range rather than a promise — around 33 hours if what transfers really does, and up to 47 if none of it does. The check is what tells you which end you are nearer.
Do I need a database installed to practise?
No. Every check on this site runs in the browser without an account, and each graded brief says what data it expects and where to get it.
Find out which half of this is true
Everything above is what we would assume about spreadsheet users. The check asks you instead — it adapts as you answer, needs no account, and what it settles carries into the path if you build one.
Take the SQL & Data Analysis check