【问题标题】:postgis postgres count and group by column for ST_Distance functionST_Distance 函数的 postgis postgres 计数和按列分组
【发布时间】:2015-11-03 10:51:21
【问题描述】:

此 SQL 产生以下内容:

SELECT city FROM travel_logs ORDER BY ST_Distance(travel_logs.start_point, ST_GeographyFromText('SRID=4326;POINT(101.652506 3.167610)')) 

"Tshopo"
"Tshopo"
"Mongala"
"Haut-Komo"

此 SQL 产生以下内容:

SELECT city, count(*) AS count FROM travel_logs GROUP BY travel_logs.start_point, city ORDER BY ST_Distance(travel_logs.start_point, ST_GeographyFromText('SRID=4326;POINT(101.652506 3.167610)')) 

"Tshopo";1
"Tshopo";1
"Mongala";1
"Haut-Komo";1

基本上,我想要这样的结果,按城市和同一城市出现的次数分组。像这样的

"Tshopo";2  <--- its summed up correctly
"Mongala";1
"Haut-Komo";1

我不是联接、子查询方面的专家,这有帮助吗?提前致谢。

【问题讨论】:

    标签: sql postgresql count group-by postgis


    【解决方案1】:

    这对我有用:

    select city, count(*) as count
    from
    (SELECT city FROM travel_logs ORDER BY ST_Distance(travel_logs.start_point, ST_GeographyFromText('SRID=4326;POINT(101.652506 3.167610)'))
    ) as subquery_travel_logs_nearest group by city
    

    【讨论】:

      【解决方案2】:

      没有子查询的简单、普通的 SQL:

      SELECT city, count(*)
      FROM travel_logs
      GROUP BY city
      ORDER BY ST_Distance(start_point,
               ST_GeographyFromText('SRID=4326;POINT(101.652506 3.167610)'));
      

      【讨论】:

        猜你喜欢
        • 2020-06-23
        • 2011-09-11
        • 1970-01-01
        • 2011-04-11
        • 2012-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        相关资源
        最近更新 更多