我有一個查詢正確地返回所有內容,除了我的總列(總和)之間存在一些輕微的不一致之外,我無法弄清楚它爲什麼會發生或者有更好的方法來處理它。沒有正確別名的總和值
這裏的查詢的部分問題:
SELECT
c.extension
,RESPONSIBLEUSEREXTENSIONID
, sum(Duration) -- seconds
, round(sum(Duration)/60,2) -- minutes
, sum(if(LEGTYPE1 = 1,1,0)) -- outbound
, sum(if(LEGTYPE1 = 2,1,0) and ANSWERED = 1) -- inbound
, sum(if(Answered = 1,0,1)) -- missed
, count(if(LEGTYPE1 = 1,1,0)) + count(if(LEGTYPE1 = 2,1,0)) -- as total_calls
, now()
, 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()
AND c.extension IN (7276,7314,7295,7306,7357,7200,7218,7247,7331,7255,7330,7000,7215,7240,7358,7312)
group by DATE(b.ts),c.extension;
這裏是前幾個結果:
總通話柱應該添加呼入,呼出和未接來電。你可以看到大多數情況下,總數是正確的,但特別是在第一和第三行中,它是關閉的。如果我給公式AS
別名並嘗試對別名進行求和,則表示該列不存在。
有什麼我「米失蹤是造成不一致的問題,更重要的是有一個更直接的方式,我可以總結這3列/值?
使用'總和(LEGTYPE1 = 1)+ SUM(LEGTYPE1 = 2)'總通話,並添加' RESPONSIBLEUSEREXTENSIONID'在'group by'中。 –