簡體   English   中英

MySQL計數按3列分組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM