[英]MySql count grouping by 3 columns
我想計算每天發送的電子郵件數量,每天發送的電子郵件中有“錯誤”狀態以及每天有多少郵件處於“排隊”狀態。
這是我的表結構的示例:
mail_id (int)
date_sent (datetime)
status (tinyint) (1=queue, 2=sent, 3=error)
這是我的查詢:
SELECT date_sent,
COUNT(date_sent) AS total,
SUM(IF(status = 3, 1, 0)) errorcount,
SUM(IF(status = 1, 1, 0)) queuecount
FROM sendmail
GROUP BY date_sent, status
這是我的結果的示例:
date_sent total errorcount queuecount
2013-02-11 50 50 10
2013-02-11 1 0 0
2013-02-11 1 0 0
2013-02-11 1 0 0
2013-02-12 1 0 0
2013-02-12 1 0 0
2013-02-12 1 0 0
2013-02-12 1 0 0
2013-02-12 1 0 0
2013-02-13 1 0 0
2013-02-13 1 0 0
2013-02-13 1 0 0
例如,如果在整個時間段內總共有50個錯誤,則所有錯誤狀態電子郵件都被分組為一個日期2013-01-11,而不是分配到它們發生的日期。
這是我期望的結果的一個示例:
date_sent total errorcount queuecount
2013-02-11 4 1 1
2013-02-12 5 2 1
2013-02-13 3 1 1
任何幫助將不勝感激。
這是我是新的Web開發人員,因此是我在任何論壇上的第一篇文章,因此對我的文章提出的任何建議或問題都將有所幫助。
謝謝
您只date_sent
,而不date_sent
status
分組,因為您要在輸出列中計算不同的狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.