嗨大家我目前有这张桌子
MEMBER
**ID Position Latitude Longitute**
1 1 1.38086 103.749
1 2 1.38086 103.749
1 3 1.38086 103.749
1 4 1.48086 103.949
1 5 1.48086 103.949
1 6 1.48086 103.949
1 7 1.58086 103.749
我目前正在使用select * from meber group by latitude,longitute order by position desc
。
然而这将导致
**ID Position Latitude Longitute**
1 1 1.38086 103.749
1 4 1.48086 103.949
1 7 1.58086 103.749
我希望结果显示最高位置而不是使用group by的最低位置。任何解决方案
答案 0 :(得分:4)
您必须使用子查询来确定每个组的最大位置,然后将其与您的选择连接以获得所需的记录:
SELECT *
FROM meber NATURAL JOIN (
SELECT latitude,longitute,MAX(position) AS position
FROM meber
GROUP BY latitude,longitute
) AS t
顺便说一句,英文单词拼写为"经度"。
答案 1 :(得分:2)
select MAX(position) position,latitude,longitute
from meber
group by latitude,longitute
答案 2 :(得分:0)
子查询解决方案是最常见的解决方案。
我喜欢使用另一个,因为它不涉及子查询:
SELECT *
FROM member M
LEFT JOIN member N
ON M.latitude = N.latitude
AND M.longitute = N.longitute
AND M.position < N.position
WHERE N.position IS NULL
请注意,为了获得最低位置,它就像写M.position&gt;一样简单。 N.position代替。