查询后对SQL求和的SQL

时间:2015-11-24 17:46:36

标签: postgresql

抱歉这个糟糕的头衔。 我有一个postgreSQL数据库,其中一些列是k_time(一些epoch的东西),甚至显示一些可读的结果我需要运行一个查询,将此k_time转换为时间戳并选择一个特定的日期。

这是查询,出于安全原因我覆盖了其他列名,不应该是相关的

ArrayList

此查询导致

我怎么能把桌子放在里面?大声笑: - /不能告诉你我的结果 它来自Postico

编辑: 抱歉,我找不到时间来更新我的实际表格内容。 我的点基本上是在我运行该查询之后我有一列to_timestamp,其中当天的每一小时都是一行(这是因为sql表聚合它就像那样)

Object

最后是查询结果 我需要的是: 这整天的一行包含最后三列中所有值的总和

1 个答案:

答案 0 :(得分:0)

为了使两个日期之间的k_time值合适,你可能需要在你的sql中删除“/ 1000”。

下面:

select
to_timestamp(k_time),
k_time,
k_123,
k_456,
SUM(789)  as 789,
SUM(111)  as 111,
SUM(aaa)  as aaa
FROM table
WHERE k_abc = 0
AND to_timestamp(k_time) BETWEEN '2015-11-22'::DATE AND '2015-11-24'::DATE
AND k_xyz = 'test' AND k_456 = 'result'
GROUP BY k_time,k_123,k_456
ORDER BY k_time,k_123,k_456;

我所说的取决于“k_time”中的值是以秒还是毫秒存储。

  • 如果“k_time”中的值为秒,则删除“/ 1000”
  • 如果“k_time”中的值是毫秒,则保留“/ 1000”

示例:date“2015-11-12 14:10:51”以秒为单位转换为“1447330251”,以毫秒为单位转换为“1447330251000”。