簡體   English   中英

MySQL按日期和計數分組

[英]Mysql group by date and count query

我有如下表格: 在此處輸入圖片說明

借助MySql查詢,我想要的結果如下:

date        total    read    unread
2018-01-31   8        4        4
2018-02-01   2        2        0

嘗試這個:

SELECT date, COUNT(*) as total,
SUM(CASE WHEN read = 1 THEN 1 ELSE 0) as read
SUM(CASE WHEN read = 0 THEN 1 ELSE 0) as unread
FROM yourtable
GROUP BY date

您可以使用案例匯總過濾后的值以供讀取

select date
, count(*), sum(case when  read=1 then 1 else 0 end )  as read
, sum(case when  read=0 then 1 else 0 end )  as unread
from my_table 
group by date 

嘗試此操作在read列中不需要大小寫,因為1表示已read因此我們只求sum即可。 如果我們處理大量數據,它將對性能有所幫助:

SELECT date, 
    COUNT(*) as total,
    SUM(read) as read --Case not needed here
    SUM(CASE WHEN read = 0 THEN 1 ELSE 0) as unread
FROM yourtable
GROUP BY date

您必須使用group by by將日期group bygroup by ,然后可以使用count來計數每個日期組內的總行數(=總列)。 為了獲得已讀和未讀的數量,可以將已讀和未讀的值sum

        SELECT date
             , COUNT(*) AS total
             , SUM(READ) AS READ
             , SUM(CASE WHEN READ = 0 THEN 1 ELSE 0 END) AS unread
        FROM mytable
        GROUP BY date

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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