Here we are, another SQL query to write. You wish you knew how to write that
mechanically, like you would a loop in your favorite programming language.
Or at least have a pretty clear idea of a skeleton to tweak until it gives
the result set you expect. So instead of working on your SQL query, you
google How to write a SQL query? or maybe even How to learn SQL?
Right. I feel you, I’ve been there too, even if quite some time ago…
So here my article where I teach you how to learn SQL.
I want to share with you how I did it, and how I continue to do it. There’s
no magic secret sauce to it though, it’s all basic work. Again, we have to
learn the main concepts and how they play together, then practice simple
steps, and then build from there.
Ok, let’s face it, I like SQL. A lot. I think it’s a fine DSL given how powerful it is, and I respect its initial goal to attract non developers and try to build English sentences rather than code.
Also, I understand that manually hydrating your collection of objects in your backend developement language is not the best use of your time. And that building SQL as strings makes your code ugly.
In our previous articles we had a look at What is an SQL relation? and What is a SQL JOIN?. Today, I want to show you what is an aggregate in SQL.
You might have heard about Map/Reduce when Google made it famous, or maybe some years before, or maybe some years later. The general processing functions map and reduce where invented a very long time ago. The novelty from the advertising giant was in using them in a heavily distributed programming context.
It took me quite some time before I could reason efficiently about SQL JOINs. And I must admit, the set theory diagrams never helped me really understand JOINs in SQL. So today, I want to help you understand JOINs in a different way, hoping to make the concept click at once for you too!
As we saw in the previous article What is an SQL relation?, in SQL a relation is a collection of objects, all sharing the same definition.
If you’re like me, understanding SQL is taking you a long time. And some efforts. It took me years to get a good mental model of how SQL queries are implemented, and then up from the lower levels, to build a mental model of how to reason in SQL.
Nowadays, in most case, I can think in terms of SQL and write queries that will give me the result set I need.