1

こんにちはみんな私は現在このテーブルを持っています

メンバー

**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    

グループ化を使用して、最低位置ではなく最高位置を示す結果が必要でした。任意のソリューション

4

3 に答える 3

4

サブクエリを使用して各グループの最大位置を決定し、それを select と結合して目的のレコードを取得する必要があります。

SELECT *
FROM   meber NATURAL JOIN (
  SELECT   latitude,longitute,MAX(position) AS position
  FROM     meber
  GROUP BY latitude,longitute
) AS t

ちなみに英単語は「longitude」と綴ります。

于 2012-06-07T07:36:37.957 に答える
2
select MAX(position) position,latitude,longitute
from meber
group by latitude,longitute
于 2012-06-07T07:36:19.013 に答える
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 > N.position と書くだけです。

于 2012-06-07T07:54:42.950 に答える