MySQL SUM()、COUNT()和GROUP BY

MySQL SUM()、COUNT()和GROUP BY,mysql,sql,Mysql,Sql,我有一个关于MySQL的问题。请查看以下查询和结果集: SELECT `SentTo`, `Read` FROM `Emails` as t 我想知道每封邮件的邮件数量和总阅读量。我将得到未读的总减去和阅读的脚本方面,不需要它在这里 Email | Total | Read -------------------------------------- hello@mydomain.com | 3 | 1 -------------

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

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

我想知道每封邮件的邮件数量和总阅读量。我将得到未读的总减去和阅读的脚本方面,不需要它在这里

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

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

Group by应该会给出所需的结果

SELECT sentTo,
       Sum(READ) AS TotalRead,
       Sum(CASE WHEN READ =0 THEN 1 ELSE 0) AS Unread
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

这应该可以使用
分组依据

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

这应该通过使用
分组方式来实现:

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

一个“Group by”子句可以解决这个问题,如下所示:

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

“Group by”子句可以解决此问题,如下所示:

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

这将
SUM
读取
列,而不是
SUM
当它等于0时。另外,
Read
在MySql中是一个保留字,需要进行转义。当Read为1时,OP需要值,正如您在第一封电子邮件获得3次读取的示例中所看到的,这是总数,即
计数(*)
。例如,hello总共有3条记录,但只有1条记录的read=0。此查询返回hello和2。这将
SUM
Read
列,而不是
SUM
当它等于0时。另外,
Read
在MySql中是一个保留字,需要进行转义。当Read为1时,OP需要值,正如您在第一封电子邮件获得3次读取的示例中所看到的,这是总数,即
计数(*)
。例如,hello总共有3条记录,但只有1条记录的read=0。此查询返回hello with 2。除此之外,这是无效语法,如果它是。。。首先,您不能像这样在
SELECT
查询中引用列别名。其次,
COUNT(DISTINCT SentTo)
将始终等于1——OP要求的是
COUNT(*)
…除了这不是有效语法之外,如果它是。。。首先,您不能像这样在
SELECT
查询中引用列别名。其次,
COUNT(DISTINCT SentTo)
将始终等于1——OP要求
COUNT(*)
..
SUM(Read=0)
条件计数+1的真正Mysql解决方案
SUM(Read=0)
条件计数+1的真正Mysql解决方案