У меня есть следующая таблица в postgres:
+----------+-------+
| date | money |
+----------+-------+
| 20191212 | 10 |
+----------+-------+
| 20200101 | 20 |
+----------+-------+
| 20200102 | 30 |
+----------+-------+
Я хотел бы создать 2 запроса, которые группируют по сумме денег по годам и один запрос по месяцам. Столбец даты - varchar, и я не могу преобразовать его в дату.
+------+-------+
| year | money |
+------+-------+
| 2019 | 10 |
+------+-------+
| 2020 | 50 |
+------+-------+
+---------+-------+
| month | money |
+---------+-------+
| 2019-12 | 10 |
+---------+-------+
| 2020-01 | 50 |
+---------+-------+
Я попытался объединить функцию to_date и функцию extract, но она не работает:
WITH date_year AS (
SELECT to_date(date, 'YYYYMMDD') as date_year from sales
)
SELECT EXTRACT(YEAR FROM date_year) as year, sum(money) as sum FROM sales group by year
WITH date_month AS (
SELECT to_date(date, 'YYYYMMDD') as date_month from sales
)
SELECT EXTRACT(MONTH FROM date_month) as month, sum(money) as sum FROM sales group by month