0
以下のクエリは完全に機能しますが、新しいメトリックの計算の一部を変更する必要があります。合計の結果である値を減算する
現在は(空間と時間のために不要な列を削除する)このようなデータを提示ます:
ID | Extension | Total Inbound | Total Outbound | Total Missed | Total Calls
----------------------------------------------------------------------------
1 1000 6 1 2 7
しかし、私は、インバウンドから逃し減算するように変更します。それは、合計インバウンドとアウトバウンドを追加していく必要があるが、私はこの出力を探しています:
ID | Extension | Total Inbound | Total Outbound | Total Missed | Total Calls
----------------------------------------------------------------------------
1 1000 4 1 2 7
Insert into test.ambitionLog30Days(Extension, ExtID, Total_Talk_Time_seconds,
Total_Talk_Time_minutes,Total_Outbound, Total_Inbound,
Missed_Calls, Total_Calls, Time_of_report,Date_of_report )
SELECT
c.extension
,RESPONSIBLEUSEREXTENSIONID
, sum(Duration)
, round(sum(Duration)/60,2)
, sum(if(LEGTYPE1 = 1,1,0)) -- Total inbound calls
, sum(if(LEGTYPE1 = 2,1,0))
, sum(if(Answered = 1,0,1)) -- Total Missed calls
, sum(if(LEGTYPE1 = 1,1,0)) + sum(if(LEGTYPE1 = 2,1,0)) as total_calls
, b.ts
, b.ts
FROM cdrdb.session a
INNER JOIN cdrdb.callsummary b
ON a.NOTABLECALLID = b.NOTABLECALLID
INNER join cdrdb.mxuser c
ON a.RESPONSIBLEUSEREXTENSIONID = c.EXTENSIONID
WHERE b.ts BETWEEN curdate() - interval 30 day and curdate()
-- WHERE b.ts >= '20170723' and b.ts < '20170823'
AND c.extension IN (7276,7314,7295,7306,7357,7200,7218,7247,7331,7255,7330,7000,7215,7240,7358,7312)
group by c.extension,b.ts
ON duplicate key update Total_Talk_Time_seconds =values(Total_Talk_Time_seconds),
Total_Talk_Time_minutes =values(Total_Talk_Time_minutes),
Total_Outbound = values(Total_Outbound),
Total_Inbound = values(Total_Inbound),
Missed_calls = values(Missed_calls),
Total_Calls = values(Total_Calls),
Time_of_report = values(Time_of_report);
私は合計インバウンドライン上- sum(if(Answered = 1,0,1))
を引いてみましたが、それは単に負の数として私のアウトバウンドの列の値を返さだから私は文法が間違っていると思う。
なぜ 'sum(Answered <> 1' :)ではないのですか?そうでなければ、いい。 – hummingBird
ありがとう、これは素晴らしいです! 3つの合計列すべての値を加算するために合計を計算する方法がありますか? –
@TomN。 。 。 。私はどこかで 'count(*)'を使う傾向があります。 –