If you have ever written a complex SQL query involving rankings, running totals, moving averages, top-N records, or comparing rows within the same dataset, chances are you have faced difficult joins, ...