我被赋予了一个对行进行分组的任务,到目前为止,我使用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中采取进一步措施的建议也都很好。提前致谢 。
答案 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)