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