0

次のようなテーブルにさまざまなフィールドがあります

発信者ID
着信番号
日にち
時間
分
料金

顧客の請求書を抽出しているときに、呼び出しが重複しています。呼び出しの重複を回避する方法を示すSQLスクリプトを案内していただければ幸いです。

例えば。1 つの Caller_id で 2 つのコールが同時に発生しているように見えますが、これは不可能です。

CallerId Called_number 日時 分 料金
5555555555 42555777777 2013 年 9 月 12 日 17:15:46 44 44
5555555555 5556666666 2013 年 9 月 12 日 17:21:28 5 9.25

前もって感謝します

4

1 に答える 1

1

@SimonGoldstone のように、CDR の重複は多くの理由で発生する可能性があります。

  • データは、NTP を使用せずに複数のサーバーによって収集されます。
  • 各サーバーは異なるタイムゾーンを使用します。
  • 電話会議

含まれている呼び出しを抽出したい場合は、次のコードを使用できます。

create table t (
Caller_id bigint,
Called_number bigint,
call_date datetime,
duration  float,
charge   float);
insert into t
values 
(5555555555, 42555777777, '2013-12-09 17:15:46', 44, 44),
(5555555555, 5556666666, '2013-12-09 17:21:28', 5,9.25);

select t.*

from t join ( select  caller_id, called_number, call_date as start_date, 
        date_add(call_date,INTERVAL duration minute) as end_date from t) t1 on  (t.caller_id = t1.caller_id and t.call_date between t1.start_date and t1.end_date) where t.called_number != t1.called_number

この投稿もご覧ください: 重複する日付範囲 - 重複のみを識別する

于 2013-10-28T12:03:10.187 に答える