我有一个带有日期列的表。
+-----------+-------+
| Date | xx |
+-----------+-------+
| 6/29/2020 | 45 |
| 3/6/2018 | 89 |
| 6/30/2020 | 69 |
| 5/6/2019 | 45 |
| 5/12/2019 | 89 |
| 6/4/2019 | 72 |
| 4/27/2019 | 69 |
| 6/29/2020 | 48 |
| 6/30/2020 | 36 |
| 6/4/2019 | 57 |
+-----------+-------+
我需要从此列中提取月份和年份,并将其添加为2个单独的列,并以“ xx”的总和进行汇总。
+------+-------+-----+
| Year | Month | Sums|
+------+-------+-----+
| 2018 | 3 | 89 |
| 2019 | 4 | 69 |
| 2019 | 5 | 134 |
| 2019 | 6 | 129 |
| 2020 | 6 | 198 |
+------+-------+-----+
我在下面尝试过,但没有按年和月总结。
select extract(month from datee), extract(year from datee), sum(xx) sums from table1
group by datee
答案 0 :(得分:0)
看,我运行此查询select extract(month from col) from table1;
,它有效。
在查询列中,名称为“ datee”。你确定那是对的吗?
另外,如果您的表/列名称包含大写字母,则需要将其放在单引号''之间。
答案 1 :(得分:0)
您需要按提取的年份和月份分组,而不是按“原始”日期分组:
SELECT EXTRACT(MONTH FROM datee), EXTRACT(YEAR FROM datee), SUM(xx) sums
FROM table1
GROUP BY EXTRACT(MONTH FROM datee), EXTRACT(YEAR FROM datee)
答案 2 :(得分:0)
此处的目标是按格式将date
转换为所需的组-在这种情况下为年-月。
select to_char(datee, 'YYYY-MM'), sum(counter) from date_mon_y group by to_char(datee, 'YYYY-MM');