【发布时间】:2016-03-28 21:57:16
【问题描述】:
我试图从频繁向我的 MYSQL 数据库发送数据的单位的数字中整理出我的最新值。
我得到了几个数据点并想显示其中的一些。按日期排序,所以我只为每个单元获取最新的。我使用每个单元的 mu IMEI 号码作为 id,并希望从中进行排序。
我的问题是,当我按顺序对整个数据集进行排序时,我希望我不能排除其余数据。使用 DISTINCT 时,我只能获得 uniq 行。而且由于我或多或少都有时间戳,所以它们都是独一无二的。
这是我当前使用的查询。
"SELECT DISTINCT(imei), imsi, battery, charging, time, median, latitude, longitude FROM {$table} GROUP BY time desc"
我怎样才能对这个进行排序,以便我最新的 imei 只显示出来。排除其余部分?
我一直在尝试 DISTINCT、TOP、一些使用 HAVING 和不同类型 WHERE 的示例代码,但没有任何成功。
在哪里可以获得有关此问题的更多知识以及如何解决它的提示和技巧?
这是我目前从我的查询中获得的最佳结果。
imei imsi battery charging time median latitude longitude
355675061138699 9240075810046549 33 1 2015-12-21 14:17:41 301 61 29.8763 16 20.9981
355675061138699 9240075810046549 33 1 2015-12-21 14:16:26 300 61 29.8763 16 20.9981
355675061138699 9240075810046549 33 1 2015-12-21 14:15:10 301 61 29.8763 16 20.9981
355675061138699 9240075810046549 33 1 2015-12-21 14:13:53 301 61 29.8763 16 20.9981
355675061138699 9240075810046549 33 1 2015-12-21 14:12:38 299 61 29.8763 16 20.9981
355675061138699 9240075810046549 0 1 2015-12-21 14:11:22 301 61 29.8763 16 20.9981
【问题讨论】:
-
列名和列数似乎不同?!?
-
DISTINCT 不是函数,看手册:dev.mysql.com/doc/refman/5.7/en/…