更新しました:
これは、 M Khalid Junaid の回答に基づくデモと現在の結果です。クエリはまだ期待した結果を出力しません。
私は非常に単純なテーブルを持っています。ここに値があります。
id animal_id latitude longitude created_at
--------------------------------------------------------------------------
119 75 1.356203 103.828140 2014-04-30 15:00:04
118 75 1.296613 103.857079 2014-04-30 14:58:58
117 75 1.296613 103.857079 2014-04-30 14:58:20
116 75 1.296613 103.857079 2014-04-30 14:53:17
これが私のクエリです。緯度、経度、およびuser_idが同じ場合は、グループ化します。
select p.id,p.animal_id,p.name,p.latitude,p.longitude,p.created_at from Photo p
where 5 >= (select count(*)
from Photo p2
where p2.animal_id = p.animal_id and
p2.id <= p.id
)
AND DATE(p.created_at) > DATE_SUB(NOW(),INTERVAL 13 DAY)
AND ( p.latitude BETWEEN 0.908862 AND 1.717581 ) AND ( p.longitude BETWEEN 103.584595 AND 104.098206 )
GROUP BY p.latitude,p.longitude,p.animal_id
ORDER BY p.created_at DESC;
現在の結果 id = 116
id animal_id latitude longitude created_at
--------------------------------------------------------------------------
119 75 1.356203 103.828140 2014-04-30 15:00:04
116 75 1.296613 103.857079 2014-04-30 14:53:17
期待される結果 id = 118
緯度、経度、uer_idをグループ化したときに最新の結果を取得したい
id animal_id latitude longitude created_at
--------------------------------------------------------------------------
119 75 1.356203 103.828140 2014-04-30 15:00:04
118 75 1.296613 103.857079 2014-04-30 14:58:58
いくつかの方法を試しましたが、望ましい結果が得られませんでした。