从PostgreSQL中提取月份和年份

时间:2020-08-02 07:46:21

标签: postgresql extract

我有一个带有日期列的表。

+-----------+-------+
|   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

3 个答案:

答案 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');