0

我希望每个邮政编码只有 1 个条目,但 atm 我有多个条目。这是代码:

select * from xyz
order by plz

这是结果:

Zipcode   Longitude   Latitude
-----------------------------------
01067   13,7143948  51,0592796
01067   13,6753     51,0837
01067       
01067   13,6649834  51,0426555
01067   13,7617695  51,0538158
01067   13,75       51,05
01067   13,7366     51,0507
01069   13,7366     51,0507
01069       
01069   13,75       51,05
01069   13,7617695  51,0538158
01069   13,6649834  51,0426555
01069   13,6753     51,0837
01090       
01097   13,6649834  51,0426555
01097   13,7617695  51,0538158
01097   13,6753     51,0837
01097   13,75       51,05

现在我只想在我的结果选择中包含具有最高“经度”值的邮政编码

谢谢

4

4 回答 4

0
select zipcode, max(Longitude), max(Latitude) from xyz
group by zipcode
order by plz

如果需要,您可以使用其他聚合器(最小、第一个、最后一个...)

于 2013-05-17T07:59:49.370 回答
0

使用 GROUP BY

select Zipcode,max(Longitude),max(Latitude) from xyz
group by Zipcode
order by plz
于 2013-05-17T07:59:59.120 回答
0

他只想要最大经度,所以我想我们应该这样写

select Zipcode, max(Longitude) , Latitude
from xyz
group by zipcode
order by plz  
于 2013-05-17T08:12:10.850 回答
0

分析函数在这里可能是合适的:

select zipcode, longitude, latitude
from (
    select zipcode, longitude, latitude,
        rank() over (partition by zipcode
            order by longitude desc nulls last) as rn
    from xyz
)
where rn = 1
order by zipcode;

强制性SQL 小提琴

内部rank()选择在每个邮政编码中分配一个排名,具有最高纬度值的行排名为 1。外部选择只是过滤以仅获取那些。

于 2013-05-17T11:04:34.407 回答