繁体   English   中英

MySQL SUM(),COUNT()和GROUP BY

[英]MySQL SUM(), COUNT() and GROUP BY

我有一个关于MySQL的特定问题。 请在下面查看查询和结果集:

SELECT `SentTo`, 
       `Read`
FROM `Emails` as t

hello@mydomain.com   | 1
--------------------------------
hello@mydomain.com   | 0
--------------------------------
hello@mydomain.com   | 1
--------------------------------
support@mydomain.com | 0
--------------------------------
support@mydomain.com | 1
--------------------------------

我想获取每封电子邮件的电子邮件计数以及总读取数。 通过减去总数并在脚本方面进行读取,我将无法读取,这里真的不需要它。

Email                | Total | Read
--------------------------------------
hello@mydomain.com   |   3   |   1
--------------------------------------
support@mydomain.com |   2   |   1
--------------------------------------

有什么建议吗? 我试图对此应用子查询,但找不到合适的解决方案。

这应该使用GROUP BY起作用:

SELECT `SentTo`,
       COUNT(*) Total,
       SUM(`Read`=0) 
FROM Emails
GROUP BY `SentTo`

“分组依据”子句可以解决以下问题:

SELECT `SentTo`, COUNT(*) as totalSend, (totalSend - SUM(`Read`)) as totalUnread
FROM `Emails`  
GROUP BY `SentTo`

分组依据应给出期望的结果

SELECT sentTo,
       Sum(READ) AS TotalRead,
       Sum(CASE WHEN READ =0 THEN 1 ELSE 0) AS Unread
FROM Emails
GROUP BY sentTo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM