TIL about tablefunc and crosstab. At first I wanted to "group data by columns" but that doesn't really mean anything. 
My product sales look like this
product_id | units   |  date
-----------------------------------
10         | 1          | 1-1-2018
10         | 2          | 2-2-2018
11         | 3          | 1-1-2018
11         | 10         | 1-2-2018
12         | 1          | 2-1-2018
13         | 10         | 1-1-2018
13         | 10         | 2-2-2018
I would like to produce a table of products with months as columns
product_id | 01-01-2018 | 02-01-2018 | etc.
-----------------------------------
10         | 1          | 2
11         | 13         | 0
12         | 0          | 1
13         | 20         | 0
First I would group by month, then invert and group by product, but I cannot figure out how to do this.
 
    