【问题标题】:How to count values from temp column in PostGIS?如何计算 PostGIS 中临时列的值?
【发布时间】:2020-06-23 14:03:37
【问题描述】:

我需要计算 -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 之间的每个值。但是如何在给定范围内只计算每条路线的一个值?

【问题讨论】:

  • 如果您从GROUP BY 子句中删除direction 列,是否可以解决您的问题?
  • 如果我这样做,它会说direction must appear in the GROUP BY clause or be used in an aggregate function
  • 我添加了一个带有重写查询的答案。如果这不起作用或不适合您的情况,您能否编辑问题并添加一些示例数据以及您要寻找的结果?

标签: postgresql count postgis


【解决方案1】:

尝试以下查询:

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

【讨论】:

  • 感谢您的回答,但这会返回所有路线的总金额,而不是总金额除以不同的注册。不过,你的回答对我帮助很大。
猜你喜欢
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 2015-01-08
  • 2014-08-28
  • 1970-01-01
  • 1970-01-01
  • 2022-10-15
  • 2015-03-01
相关资源
最近更新 更多