【问题标题】:Sum Column of Integers Based on Timestamp in PostgreSQLPostgreSQL中基于时间戳的整数列
【发布时间】:2016-03-04 21:28:14
【问题描述】:

我使用的是 PostgreSQL 版本 8.1。我有一张如下表:

          datetime     |    usage 
-----------------------+----------
2015-12-16 02:01:45+00 |    71.615
2015-12-16 03:14:42+00 |    43.000
2015-12-16 01:51:43+00 |    25.111
2015-12-17 02:05:26+00 |    94.087

我想根据datetime 列中的日期在usage 列中添加整数值。

简单地说,我希望输出如下所示:

          datetime     |    usage 
-----------------------+----------
2015-12-16             |    139.726
2015-12-17             |    94.087

我已经尝试过SELECT dateTime::DATE, usage, SUM(usage) FROM tableName GROUP BY dateTime::DATE, lngusage;,它没有按预期执行。任何援助将不胜感激。提前致谢。

【问题讨论】:

标签: sql postgresql datetime


【解决方案1】:

下面的查询应该会给你想要的结果:

select to_char(timestamp, 'YYYY-MM-DD') as time, sum(usage)
from table
group by time

【讨论】:

    【解决方案2】:

    这个是postgreSQL的,我看到你也加了MySQL。

    SELECT
      dt
      SUM(usage),
    FROM (
      SELECT
        DATE_TRUNC('day', datetime) dt,
        usage
      FROM
        tableName
    ) t
    GROUP BY
      dt
    

    【讨论】:

      【解决方案3】:
      SELECT to_char(datetime, 'format'), sum(usage)
      FROM table
      group by to_char(datetime, 'format')
      

      【讨论】:

        【解决方案4】:

        此外,您还可以使用窗口功能。

        SELECT DATETIME
        ,SUM(USAGE) OVER(PARTITION BY CAST(datetime AS DATE) ORDER BY datetime) AS Usage
        FROM TableName
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-28
          • 1970-01-01
          • 1970-01-01
          • 2023-03-23
          • 2019-09-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多