sql - 在 Postgres 中从 Db 获取最近 12 个月的数据

标签 sql postgresql

我想从数据库中获取最近 12 个月的数据,我已经为此编写了一个查询,但只给我计数和月份但没有年份意味着月份与哪一年相关。

我的SQL:

Select count(B.id),date_part('month',revision_timestamp) from package AS
 A INNER JOIN  package_revision AS B ON A.revision_id=B.revision_id 
 WHERE  revision_timestamp > (current_date - INTERVAL '12 months') 
GROUP BY  date_part('month',revision_timestamp)

它给了我这样的输出

 month | count 
-------+-------
     7 |     21
     8 |      4
     9 |     10

但我想要年份和月份,例如 7 - 2012,或其他列的年份,都没有关系

最佳答案

我相信你想要这个:

SELECT to_char(revision_timestamp, 'YYYY-MM'),
       count(b.id)
FROM package a
JOIN package_revision b ON a.revision_id = b.revision_id
WHERE revision_timestamp >
      date_trunc('month', CURRENT_DATE) - INTERVAL '1 year'
GROUP BY 1

关于sql - 在 Postgres 中从 Db 获取最近 12 个月的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18607110/

相关文章:

mysql - 带条件的 SQL 连接表查找

postgresql - 计算sql中的顶点度

xml - Unnest (xpath()) 无法正确识别 NULL 值

postgresql - 使用scala将多个数据帧插入函数中的postgres表

postgresql - 提高多列索引和排序的性能

sql - SQL 中 XML 分解的替代方案

表中任何 id 之间的 SQL 超时和超时冲突

SQL : Adding foreign key on existing composite key

mysql - 其中 In + Rand() + Limit

SQL group by 列出每个名称的所有值