0

ノードのそばを歩くたびにユーザーの MAC アドレスを取得するデータベースがあります。ノードは、会場に出入りする際に通過する必要があるように配置されています。任意の時間に会場に何人の訪問者がいるかを知りたいです (連続したものは素晴らしいですが、離散的な X 分のチャンクも問題ありません)。

次のクエリを使用すると、次の結果が得られます。

SELECT MACAddress, MIN(fg_HubDataTable.timeOfRec) as entryTime, MAX(fg_HubDataTable.timeOfRec) as exitTime
FROM fg_HubDataTable
WHERE fg_HubDataTable.venueID = 2 AND eventDate = '2013-02-22'
GROUP BY fg_HubDataTable.MACAddress, fg_HubDataTable.eventDate
HAVING TIMESTAMPDIFF(SECOND, MIN(fg_HubDataTable.timeOfRec), MAX(fg_HubDataTable.timeOfRec)) > 120

データの順序は次のとおりです。MAC アドレス、入場時間、退場時間

001CB3BAXXXX    2013-02-22 22:05:05 2013-02-23 00:34:09
001F1FA8XXXX    2013-02-23 01:17:06 2013-02-23 02:49:12
002608A8XXXX    2013-02-22 18:09:05 2013-02-22 19:12:05
0026BB9DXXXX    2013-02-22 23:13:03 2013-02-23 01:30:04
0026FF6DXXXX    2013-02-22 23:32:06 2013-02-23 01:26:03
4

1 に答える 1

0

訪問者が を持っている最新の入口が を持っている最新の出口よりも遅い場合、ある時間の間X、訪問者Vはその時間公園にいます。Entime < XExtime < Xtime < X

たとえば、訪問者が t = 2 に入場し、t = 3 に退場し、t = 4 に入場し、t = 5 に退場した場合、彼らは t = 2.5 に公園にいます (まだ退場していないため)。 t = 3.5 (最新の出口 < 3.5 は最新の入口よりも遅いため)、t = 4.5 の公園内 (最新の入口 < 4.5 は最新の出口よりも遅いため) など。

この情報を使用して、特定のタイムスタンプについて、そのタイムスタンプ中に公園にいるすべての訪問者をカウントするクエリを作成し、それを数値として吐き出し、特定の一連のタイムスタンプ (毎分など) に対してクエリを実行できます。または毎時)。

于 2013-03-04T02:59:30.333 に答える