子選擇查詢有用於從用戶登錄呼叫表:同一個表
users:
- Id INT 11
- Name VARCHAR 30
calls:
- Id INT 11
- UserId INT 11
- DateBgn DATETIME
- DateEnd DATETIME
- Number VARCHAR 30
- Type TYNYINT 1
Type: 1-Incoming call/2-Outgoing call
我的SQL知識是非常有限的,但我被要求創建一個查詢,列出10個最常用的電話並獲得按類型(OMG!)分隔的持續時間(以秒爲單位)。事情是這樣的:
Phone Type1 Type2
000-0000 350 210
111-1111 300 150
222-2222 300 140
333-3333 230 200
已經能夠獲得通話時間(秒):
TIME_TO_SEC(TIMEDIFF(DateEnd, DateBgn))
這裏是我走到這一步:
SELECT
Number,
SUM(TIME_TO_SEC(TIMEDIFF(DateEnd, DateBgn))) AS Duration
FROM
calls
WHERE
UserId = 10 AND
Type = 1 # Incomming Call
GROUP BY
Number
ORDER BY
2 DESC
LIMIT 10;
這個SQL上面所列內容我頂10個最常用的電話號碼,但只有來電(類型= 1)。請,我如何列出兩個分開的類型?
謝謝!
編輯:
我創建了一個SQL搗鼓更好地瞭解和測試: http://sqlfiddle.com/#!9/aaf9b4/1
什麼是 「最常用的」 是什麼意思? –
@juergend,對不起,英語不是我的母語。 「最常用的」意思是更高的TIME_TO_SEC(TIMEDIFF(calls.End,calls.Start))。謝謝! – Guybrush