Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 表1按小时和平均值分组_Java_Postgresql - Fatal编程技术网

Java 表1按小时和平均值分组

Java 表1按小时和平均值分组,java,postgresql,Java,Postgresql,我有一个包含id、日期、值的表,如何获得postgresql中的小时平均值 id date value 3470, 2018-11-15 08:10:00+02, 25,101610.0234375 3467, 2018-11-15 07:53:00+02, 33,101398.984375 3468, 2018-11-15 07:54:00+02, 25,101599.765625 3549, 2018-12-28 18:20:00

我有一个包含id、日期、值的表,如何获得postgresql中的小时平均值

id     date                     value
3470,  2018-11-15 08:10:00+02,  25,101610.0234375
3467,  2018-11-15 07:53:00+02,  33,101398.984375
3468,  2018-11-15 07:54:00+02,  25,101599.765625
3549,  2018-12-28 18:20:00+02,  29.21
3550,  2018-12-28 18:24:00+02,  29.21
3551,  2018-12-28 18:27:00+02,  42.21
3552,  2019-01-07 09:42:00+02,
3553,  2019-01-07 09:50:00+02,  15.140000343323
3554,  2019-01-07 09:52:00+02,  -1.3799999952316
3555,  2019-01-07 10:03:00+02,  14.949999809265
谢谢。

date\u trunc('hour',date)
完成以下工作:

如果要保留时区,需要显式识别它们(date_trunc())消除它们:

SELECT
    date_trunc('hour', mydate at time zone '0') at time zone '+2',
    avg(value)
FROM
    mytable
GROUP BY 1
ORDER BY 1

嗯,您可以将日期截短到最后一个小时(例如,通过
date\u trunc('minute',date)
)并将其分组。记录3552缺少一个值。如果OP希望在每个日期的每一小时都出现,即使没有该小时的数据出现,这也不起作用。@TimBiegeleisen我不相信这是他们所期望的。因为日期范围太大了。在这种情况下会创建许多空记录。是的,伙计们,这解决了我的问题,我在SELECT中的日期之前删除了id,以便它可以生成新的id,这就是我遇到的问题:)非常感谢。
SELECT
    date_trunc('hour', mydate at time zone '0') at time zone '+2',
    avg(value)
FROM
    mytable
GROUP BY 1
ORDER BY 1