Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
Postgresql 如何在PostGIS中计算临时列中的值?_Postgresql_Count_Postgis - Fatal编程技术网

Postgresql 如何在PostGIS中计算临时列中的值?

Postgresql 如何在PostGIS中计算临时列中的值?,postgresql,count,postgis,Postgresql,Count,Postgis,我需要计算-10到10之间的计算值的总数。 我试图做的是: WITH routes as ( SELECT reg, heading-lag(heading) over (PARTITION BY reg order by time) AS direction FROM my_table ) SELECT direction, reg, Count(direction) AS total_count FROM routes WHERE direction between -10 AND 10

我需要计算-10到10之间的计算值的总数。 我试图做的是:

WITH routes as (
SELECT
reg,
heading-lag(heading) over (PARTITION BY reg order by time) AS direction 
FROM my_table 
)
SELECT direction, reg, Count(direction) AS total_count
FROM routes WHERE direction between -10 AND 10
GROUP BY reg, direction;

这将统计每条路线在-10和10之间的每个值的数量。但如何在给定范围内对每条路线只计算一个值?

请尝试以下查询:

以路线为例 选择 规则, 航向滞后航向超过分区按注册顺序按时间作为方向 从我的桌子上 选择COUNTDISTINCT reg作为总计 方向介于-10和10之间的路线;
请尝试以下查询:

以路线为例 选择 规则, 航向滞后航向超过分区按注册顺序按时间作为方向 从我的桌子上 选择COUNTDISTINCT reg作为总计 方向介于-10和10之间的路线;
如果从GROUP BY子句中删除方向列,是否解决了您的问题?如果我这样做,则说明方向必须出现在GROUP BY子句中或用于聚合函数我添加了一个带有重写查询的答案。如果这不起作用或不适合你的情况,你能编辑问题并添加一些示例数据以及你想要的结果吗?如果你从GROUP BY子句中删除方向列,它能解决你的问题吗?如果我这样做,它会说方向必须出现在GROUP BY子句中或用于聚合函数我添加了一个带重写查询的答案。如果这不起作用或不适合您的情况,您可以编辑问题并添加一些示例数据以及您要查找的结果吗?谢谢您的回答,但这将返回所有路线的总金额,而不是总金额除以不同的注册数。不过,你的回答对我帮助很大。谢谢你的回答,但这会返回所有路线的总金额,但不会返回总金额除以不同注册的结果。然而,你的回答对我帮助很大。