要返回postgres最近12个月内每个月发生的所有记录的总和,可以使用以下步骤:
SELECT DATE_TRUNC('month', date_column) AS month, SUM(record_column) AS total_records
FROM your_table
WHERE date_column >= CURRENT_DATE - INTERVAL '12 months'
GROUP BY month
ORDER BY month;
这个查询会将日期列按月进行截断,并计算每个月记录总和。其中,your_table
是你要查询的表名,date_column
是包含日期的列名,record_column
是包含记录的列名。
SELECT TO_CHAR(month, 'YYYY-MM') AS month, COALESCE(total_records, 0) AS total_records
FROM (
SELECT generate_series(
DATE_TRUNC('month', CURRENT_DATE - INTERVAL '11 months'),
DATE_TRUNC('month', CURRENT_DATE),
'1 month'
) AS month
LEFT JOIN (
SELECT DATE_TRUNC('month', date_column) AS month, SUM(record_column) AS total_records
FROM your_table
WHERE date_column >= CURRENT_DATE - INTERVAL '12 months'
GROUP BY month
) AS subquery
ON month = subquery.month
) AS result
ORDER BY month;
这个查询使用generate_series
函数生成包含最近12个月的日期序列,并使用左连接将查询结果与这个序列进行合并。COALESCE
函数用于将空值替换为0,以确保所有月份都在结果中显示。
以上是返回postgres最近12个月内每个月发生的所有记录的总和的方法。请注意,这里没有提及任何特定的云计算品牌商,如需了解腾讯云相关产品和产品介绍,可以参考腾讯云官方文档或咨询腾讯云的技术支持团队。
领取专属 10元无门槛券
手把手带您无忧上云