将唯一行值分组Postgis,postgres和Qgis

时间:2016-02-09 05:55:07

标签: postgresql postgis qgis

我被赋予了一个对行进行分组的任务,到目前为止,我使用group by的sql语句都失败了,我还尝试首先由组唯一地提取数据,然后执行内部联接,但它不起作用。我已经使用select distinct和唯一的方法让我创建一个只有V的列作为分组我必须使用substr()但没有理想如何通过仅采取第一个来避免所有其他geom值下面是一个示例我的空间数据:

id,groupname,lat/long
1,  v1 , (40,70)
2,  v2 , (40,75)
3,  v1 ,  (40,74)

基本上我的目标是将所有V分组为一行

id,groupname,lat/long
 1,v        ,(40,70) 

其中40,70表示从代表该组的第一行检测到的第一个值。

请注意,sql查询将在postgres SQL中运行。任何有关在QGis或使用postgis中采取进一步措施的建议也都很好。提前致谢 。

1 个答案:

答案 0 :(得分:1)

如果您在第1行表示组中具有最小ID的行,则使用子查询获取每个组的min(id)并将表连接到其上以获取空间值:

select tminid, t.gname, t2.latlong
from (select min(id) as minid, substring(groupname,1,1) as gname
      from table
      group by substring(groupname,1,1)) t
inner join table t2 on t.minid=t2.id and t.gname=substring(t2.groupname,1,1)