PostgreSQL、分组依据和窗口函数
我在PostgreSQL、分组依据和窗口函数,sql,postgresql,Sql,Postgresql,我在PostgreSQL中得到了以下查询,它可以显示记录: 'SELECT TO_CHAR(date_trunc(\'hour\', time::timestamp), \'YYYY-MM-DD HH24:MI:SS\') AS time_from, TO_CHAR(date_trunc(\'hour\', time::timestamp) + interval \'1 hour\', \'YYYY-MM-DD HH24:MI:SS\') AS time_to,
PostgreSQL
中得到了以下查询,它可以显示记录:
'SELECT TO_CHAR(date_trunc(\'hour\', time::timestamp), \'YYYY-MM-DD HH24:MI:SS\') AS time_from,
TO_CHAR(date_trunc(\'hour\', time::timestamp) + interval \'1 hour\', \'YYYY-MM-DD HH24:MI:SS\') AS time_to,
SUM(km) AS km
FROM cars
GROUP BY date_trunc(\'hour\', time::timestamp) LIMIT 1000 OFFSET 50'
我想将SUM(km)OVER()添加为km_total
,以获取查询中km
的总量,如limit
和offset
所示
但是我得到了一个错误:
error: column "cars.km" must appear in the GROUP BY clause or be used in an aggregate function
但是我不允许通过将其添加到我的组中,这会导致以下错误:
error: window functions are not allowed in GROUP BY
你想要:
SUM(SUM(km)) OVER () AS total_km
SUM()
的嵌套起初看起来很奇怪。内部总和(km)
是聚合函数。外部SUM()
是窗口函数