2016-06-30 11 views
0

タイムスタンプのデバイスがあるデータベースがあります。 私は何台のデバイスを持っているのかを計算したい。 10分の分解能。MYSQL:デバイス数pr。時間は10分で

私が試してみました:私はちょうど1時間の時間間隔でカウントマニュアルSELECTステートメントにそれを比較する場合

SELECT 
FROM_UNIXTIME(ROUND(UNIX_TIMESTAMP(`time`)/(60*10))*60*10) AS `time` 
,COUNT(DISTINCT data.`mac`) AS `count` 
FROM data 
GROUP BY FROM_UNIXTIME(ROUND(UNIX_TIMESTAMP(`time`)/(60*10))*10*60); 

をこれが間違った結果を与えます。

は、私がどのように多くの異なるデバイスPR計算します。 10分の分解能で時間: 時間間隔12:00:00 - 13:00:00の次の間隔は12:10:00 - 13:10などの異なるMAC数をカウントします。

私はMYSQLデータベースを使用しています。

+2

が重複する可能性を働くだろう(http://stackoverflow.com/questions/2793994/group-mysql-query-by-15-min-intervals) – Alex

+0

'FROM_UNIXTIME(ROUND(UNIX_TIMESTAMP(' time')/(60 * 10))* 60 * 10)は '選択リストにあなたが期待するものを返すのか? – jarlh

+0

私は10分の時間グループを与えます。しかし、私はデバイスのpr時間の正しいカウントを取得していない。 –

答えて

0

私はROUNDは、右の機能がここで使用されるべきではないと思います。 DIVがより適切です。 この[15分間隔で、グループmysqlのクエリ]の

SELECT UNIX_TIMESTAMP(time) DIV (10 * 60) AS time 
,COUNT(DISTINCT data.`mac`) AS `count` 
FROM  data 
GROUP BY time; 
+0

代わりにDIVを使うことについては良い点があると思います。少なくともROUND関数は保存されます。 は、しかし、あなたのSQLの提案で、それは明確なMacの10分間ではなく1時間のカウント数を選択します。 質問が不明な場合は申し訳ありません。私はどのくらい多くの別個のデバイスを計算したい。 10分当量の分解能で時間:時間間隔で 数の異なるMacは午前12時00分00秒 - 13時10分というように - 13時00分○○秒、次の間隔は、午前12時10分00秒でなければなりません –

関連する問題