【发布时间】:2014-03-27 18:03:22
【问题描述】:
我有一个路由器,它嗅探数据包并将设备 ID、信号强度和时间戳存储在 MySQL 数据库中。这些都存储在一个表中,字段为:device_id、signal_strength 和 time_stamp。每条记录代表一个接收到的数据包。 由于我从多个来源接收数据包,因此数据库中的记录是随机顺序的。
我想计算从每个 MAC 地址的第一个数据包到我收到最后一个数据包的时间。所以我不知道一个设备被测量了多长时间。这是我被卡住了。我不知道如何计算或查询这个。也许我的数据库设计不是最优的?
编辑:示例数据
record_id device_id date time signal_strength
32 2 2014-02-20 10:52:52 -9
33 2 2014-02-20 10:52:52 -14
34 2 2014-02-20 10:52:53 -9
35 2 2014-02-20 10:52:53 -10
36 2 2014-02-20 10:52:53 -10
37 7 2014-02-20 10:52:53 -53
38 2 2014-02-20 10:52:53 -15
39 2 2014-02-20 10:52:53 -9
40 2 2014-02-20 10:52:53 -9
41 2 2014-02-20 10:52:53 -10
42 2 2014-02-20 10:52:54 -13
43 2 2014-02-20 10:52:54 -9
44 7 2014-02-20 10:52:54 -60
45 2 2014-02-20 10:52:54 -10
46 2 2014-02-20 10:52:54 -9
47 2 2014-02-20 10:52:54 -9
48 2 2014-02-20 10:52:54 -10
49 2 2014-02-20 10:52:55 -13
50 7 2014-02-20 10:52:55 -56
51 2 2014-02-20 10:52:55 -15
52 7 2014-02-20 10:52:55 -58
53 2 2014-02-20 10:52:55 -26
54 2 2014-02-20 10:52:55 -14
55 2 2014-02-20 10:52:56 -13
56 2 2014-02-20 10:52:56 -12
57 2 2014-02-20 10:52:56 -9
58 2 2014-02-20 10:52:56 -11
59 2 2014-02-20 10:52:56 -13
60 7 2014-02-20 10:52:56 -55
61 2 2014-02-20 10:52:57 -14
我正在尝试通过device_id 和time 订购,但我不知道如何询问每台设备的最后一次。此外,每天可以对设备进行多次测量。换句话说,设备可以多次进入嗅探区域。所以我需要区分是第一次输入还是第二次。
谢谢
【问题讨论】:
-
您能提供一些数据示例吗?我想你可以计算每个 MAC 地址的 Max(time_stamp) 和 Min(time_stamp) 之间的 SQL 时间,但是如果你不能通过某些字段或值或任何东西来区分数据包,就会出现问题..
-
感谢您的评论。我编辑了我的帖子。
标签: mysql sql database-design relational-database data-modeling