1

我有一个包含多个imei的表格数据。我想找出所有imei的所有最大值(日期)。我正在写这个查询:

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

但这会获取所选 imei 的所有数据,然后从所有数据中仅选择一个最大日期。

我想找出所有imei的所有最大值(日期)。

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 回答