3

ユーザーのモバイル データ接続の詳細 (信号強度、ネットワーク技術の種類など) を PostgreSQL の単一のテーブルに定期的に記録するプログラムがあります。表の関連フィールドは次のとおりです。

networkmedium.id
networkmedium.date_time
networkmedium.medium_type

テーブルの例は次のようになります。

0  |  2013-07-26 08:00:01  | 3G
1  |  2013-07-26 08:00:02  | GPRS
2  |  2013-07-26 08:00:06  | 3G
3  |  2013-07-26 08:00:10  | 3G
4  |  2013-07-26 08:00:16  | GPRS

このデータから、特定のメディア タイプ (つまり、GPRS、3G など) に費やされた合計時間を取得しようとしていますが、うまくいきません。

上記の例では、r1 と r0、r2 と r1、r3 と r1、r4 と r3 の間の時間差が必要であり、medium_type でグループ化して合計しますが、これについて最善の方法で行き詰まっています。

前もって感謝します、Trev。

4

2 に答える 2

0

r3-r2 を使用しても問題ないと思いますが、同じ結果が得られるのではないでしょうか? もしそうなら、これは仕事をしていると思います。ただし、テストしていません

SELECT t.medium_type, t.sum(duration) FROM ( SELECT n2.date_time - n1.date_time as duration FROM networkmedium n1 INNER JOIN networkmedium n2 on n2.id = n1.id+1 ) as t GROUP BY medium_type

于 2013-07-26T10:35:13.273 に答える