1
所以我有一個超過900萬條記錄的mysql表。他們是通話記錄。每條記錄代表1個獨立呼叫。各列如下:在Mysql查詢中具體where子句
CUSTOMER
RAW_SECS
TERM_TRUNK
CALL_DATE
還有其他人,但這些是我將使用的。 所以我需要計算特定Term Trunk中某個星期的總呼叫次數。然後我需要總結這些呼叫的秒數。然後我需要計算低於7秒的呼叫總數。我總是在2個查詢中完成這項工作,並將它們結合起來,但我想知道是否有辦法在一箇中完成它?我是新來的mysql,所以我敢肯定,我的語法是可怕的,但這裏是我做的......
查詢1:
SELECT CUSTOMER, SUM(RAW_SECS), COUNT(*)
FROM Mytable
WHERE TERM_TRUNK IN ('Mytrunk1', 'Mytrunk2')
GROUP BY CUSTOMER;
查詢2:
SELECT CUSTOMER, COUNT(*)
FROM Mytable2
WHERE TERM_TRUNK IN ('Mytrunk1', 'Mytrunk2') AND RAW_SECS < 7
GROUP BY CUSTOMER;
有任何方式將這兩個查詢合併爲一個?或者也許只是一個更好的方法呢?我感謝所有的幫助!
沒有。不是真的。 'sum(raw_secs)'和'raw_secs <7'具有矛盾的目的。你可以擺弄'有raw_secs <7',但我猜這不會產生你想要的。 –
如果你想合併查詢,輸出需要被塑造成相同。如果你有類似的列,你可以使用'UNION ALL'並在一次調用中得到結果。 –
我想第二個查詢的RAW_SECS來自第一個查詢的總和。在GROUP BY後面使用'HAVING'作爲聚合過濾器,如'HAVING SUM(RAW_SECS)<7'。 – Tin