当前位置: 首页 > 面试题库 >

在Postgres中从Db获取最近12个月的数据以及年份

岳嘉石
2023-03-14
问题内容

我想从数据库中获取最近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查询来获取基于月份的图表表示形式的最近12个月的记录: 但是,如果一个月没有任何记录,则它不会按预期包含在结果集中,并且我正在使用php进行大量计算以完成所需的操作。 我的问题是:是否有一种方法可以检索一个简单的结果集,其中包含过去12个月每个月的驱动器总数,并且如果一个月中有0个驱动器,则还必须将其包含在结果集中显示。 问题答案: 您需要使用一个表进行外部联接

  • 问题内容: 该查询仅显示现有月份的结果。我需要所有12个月的销售。 输出 : 所需输出 : 问题答案: 感谢@pankaj提示,在这里我通过此查询解决了…

  • 问题内容: 我正在使用当前系统时间在表中插入数据,例如 。因此,在获取数据时,我仅需要获取最后3个小时的数据。 以下链接对我没有帮助。因为此链接使用的是我没有的特定日期格式。 从SQLite获取根据过去小时的数据 这是我的查询,但似乎无法正常工作。 插入时时间戳只不过是当前系统时间。 请给我任何参考或提示。 问题答案: 您可以使用以下方法获取3小时的时间戳记 然后,您可以传递给查询。 或者您可以在

  • 这是正确的工作,但它绘制了许多标记的坐标小于600米的用户的位置。我想要的是只在折线的最近点画一个标记。某种程度上评估来自用户的<600的所有coord,然后选择最接近的。感谢任何帮助。

  • 我必须在oracle sql中获取日文格式的日期(2008年12月31日)。 我尝试从dual中选择\u CHAR(sysdate,'yyyyy-MON-DD','nls\u date\u language=''JAPANESE'');但我得到了2019-4年月 -04 . 我没有得到年份和日期符号。 如果有办法在oracle sql中实现,请告诉我。

  • 问题内容: 如何使用当前时间选择最近12个月的名称。不使用任何表格,如果当前月份是十月,那么我想要的结果是 我没有为此数据库中的任何表。 问题答案: