1

複数のimeiを持つテーブルデータがあります。すべての imi のすべての max(dates) を調べたい。私はこのクエリを書いています:

SELECT * 
from data 
where gpsdatetime=(
        select max(gpsdatetime) 
        from data) 
    AND imei in("+imei_string+");

しかし、これは選択されたimeiのすべてのデータを取得し、すべてのデータから1つの最大日付のみを選択します.

すべての imi のすべての max(dates) を調べたい。

4

2 に答える 2

0

私はあなたがこれを探していると思います
SELECT * From data D
where gpsdatetime in (select max(gpsdatetime) from Data group by imei)
AND imei in("+imei_string+");

于 2013-06-27T11:22:13.403 に答える
0

これを試して:

SELECT imei, MAX(gpsdatetime)
FROM data
GROUP BY imei

このクエリはGROUP BY 句を利用します。

SQLFiddle のデモ

すべての imei 行 (重複も含む) が必要な場合は、次のクエリを使用します。

SELECT a.imei, b.gpsdatetime
FROM data a
JOIN (
  SELECT imei, MAX(gpsdatetime) as gpsdatetime
  FROM data
  GROUP BY imei
) b
ON a.imei = b.imei

SQLFiddle のデモ

于 2013-06-27T10:26:04.223 に答える