我想每个邮政编码只有一个条目,但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
现在我想在我的结果选择中只有那个具有最高“经度”值的邮政编码
感谢
答案 0 :(得分:0)
select zipcode, max(Longitude), max(Latitude) from xyz
group by zipcode
order by plz
如果需要,你可以使用其他聚合器(min,first,last ...)
答案 1 :(得分:0)
使用 的 GROUP BY 强>
select Zipcode,max(Longitude),max(Latitude) from xyz
group by Zipcode
order by plz
答案 2 :(得分:0)
他只想要经度,所以我想我们应该这样写
select Zipcode, max(Longitude) , Latitude
from xyz
group by zipcode
order by plz
答案 3 :(得分: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 Fiddle。
内部选择中的rank()
在每个邮政编码中分配一个排名,其中纬度最高值的行被排名为1.外部选择只过滤到仅获取那些。