あるスキーマからデータを取得し、別のスキーマの特定のテーブル/フォーマットに挿入するために使用されている動作中のMySQL文(mysql workbenchを使用)があります-のみ)。間隔でデータをフィルタリングするためにMySQL文を変更する
概要:1日を通して集計する必要があるCSRエージェントのコールデータと通話時間を記録します。
フォーマットが正しく、ステートメントがデータを正しく挿入しますが、特定のパラメータに合わせて少し修正する必要があります。今実行される方法は毎回挿入されます(目標は15分ごとにイベントにすることです)が、特定の拡張機能に対して重複する可能性があります。
15分ごとに「拡張機能/拡張機能IDがすでに存在する場合は、既存のデータに新しいデータを追加してください。そうでなければ、この拡張機能の新しいレコードを作成してください」というメッセージが必要です。この方法では、エージェント1が終日働いている場合は、1日を通してコール分を追加することができますが、エージェント2は半日で動作し、その時間だけ追加できます。
既存のクエリ:
Insert into test.ambition_test(ExtID, Extension, Total_Talk_Time_seconds,Total_Talk_Time_minutes,Total_Outbound, Total_Inbound, Missed_Calls, Total_Calls)
SELECT
RESPONSIBLEUSEREXTENSIONID as ExtID
, c.extension as Extension
, sum(Duration) as Total_Talk_Time_seconds
, round(sum(Duration)/60,2) as Total_Talk_Time_minutes
, sum(if(LEGTYPE1 = 1,1,0)) as Total_Outbound
, sum(if(LEGTYPE1 = 2,1,0)) as Total_Inbound
, sum(if(Answered = 1,0,1)) as Missed_Calls
, count(DISTINCT b.NOTABLECALLID) as Total_Calls
FROM cdrdb.session a
JOIN cdrdb.callsummary b
ON a.NOTABLECALLID = b.NOTABLECALLID
join cdrdb.mxuser c
ON a.RESPONSIBLEUSEREXTENSIONID = c.EXTENSIONID
-- WHERE b.ts > (now() - interval 15 minute)
GROUP BY a.RESPONSIBLEUSEREXTENSIONID
ORDER BY Total_Talk_Time_minutes DESC
私は最後の15分から引っ張る行をコメントアウトが、私はそれを追加する必要があるのに対し、それはただの仕事の時間をシミュレートし、それが最新のデータのみを引っ張りますリアルタイムで最新のデータをアップし、15分ごとに実行するように設定します。
HOw私はこれを変更して既存の内線番号を更新し、新しい内線番号を追加することはできますか?
オプションがある場合は、毎日の最終日の合計を保持し、毎日新しい挿入を開始したいと思います。
ありがとう、申し訳ありませんが、私はすべての適切なスポットで意味をなさない。これはまだテーブルに入っていない人を追加するようですが、私はこれを行うことができるようにしたいのですが、15分前の最後の仕事のテーブルにその拡張が既にある場合、テーブルを更新しますそれらの新しいレコードに加えて新しい合計。 –