当前位置: 首页 > 知识库问答 >
问题:

在postgresql中按月份和年份对查询结果分组

方昊阳
2023-03-14
id      date          Product Sales
1245    01/04/2013    Toys    1000     
1245    01/04/2013    Toys    2000
1231    01/02/2013    Bicycle 50000
456461  01/01/2014    Bananas 4546
Apr    2013    3000     Toys
Feb    2013    50000    Bicycle
Jan    2014    4546     Bananas

有没有一个简单的方法可以做到这一点?

共有1个答案

钱志义
2023-03-14

我不敢相信公认的答案有这么多人赞成--这是一个可怕的方法。

下面是使用date_trunc的正确方法:

   SELECT date_trunc('month', txn_date) AS txn_month, sum(amount) as monthly_sum
     FROM yourtable
 GROUP BY txn_month

这是不好的做法,但如果你使用

 GROUP BY 1
 GROUP BY date_trunc('month', txn_date)
 类似资料:
  • 问题内容: 我在Postgres服务器上有以下数据库表: 我想创建一个查询,给出了的按月份和年份如下列并对结果进行分组: 有没有简单的方法可以做到这一点? 问题答案: 应Radu的要求,我将解释该查询: :将“日期”属性转换为月的简短形式的定义格式。 :Postgresql的“提取”功能用于从“日期”属性中提取YYYY年。 :SUM()函数将所有“ Sales”值相加,并提供区分大小写的别名,并使

  • 我有以下数据框: 我需要按年和月分组数据。即:按2013年1月、2013年2月、2013年3月等分组...我将使用新分组的数据来创建一个显示每年/每月abc vs xyz的图表。 我尝试过groupby和sum的各种组合,但似乎没有任何效果。 谢谢你的帮助。

  • 问题内容: 我有以下数据框: 我需要按年份和月份对数据进行分组。例如:按2013年1月,2013年2月,2013年3月等分组。我将使用新分组的数据创建一个显示每年/每月abc vs xyz的图表。 我已经尝试了groupby和sum的各种组合,但是似乎什么也无法工作。 感谢您的协助。 问题答案: 您可以使用重采样或(在后台重采样)。 首先,请确保datetime列实际上是datetimes(用命中

  • 问题内容: 我需要从具有列的表中抓住一些记录,这是一个(没有时间)。我只需要通过比较年份和月份来过滤记录。例如,我希望所有出生于1990年3月的用户。日子并不重要。 您如何处理? 问题答案: 您可以使用 它将对HQL有效

  • 我试图按年度汇总我的结果,但我不明白为什么它不起作用。 数据看起来像... 和我的查询代码: 和结果: 如何按年度或月度汇总结果?

  • 我使用postgres的rails应用程序和我有一个postgresql db。我有一个要求选择和