SQL is good at a number of things. There are some things it's known to be quite bad at, most of which result from returned rows having no knowledge of one another.
Let's say you wanted to know who your top five customers are. That's an easy enough query to write:
SELECT customerid,sum(netamount) as sales FROM orders GROUP BY customerid ORDER BY sales DESC LIMIT 5; customerid | sales ------------+--------- 15483 | 1533.76 9315 | 1419.19 15463 | 1274.29 10899 | 1243.14 3929 | 1196.87
Here's a challenge for you: how would you write this query to also include that sales ranking for each customer, from 1 to 5, as part of this list? It's not a simple problem.
One of the subtle things about SQL queries is that ...