在groupby中获取count()的总和

Mal*_*Tec 1 mysql sql

不知道我是否通过将继续问题作为新问题发布来打破通信指南.如果是这样.对不起!!

现在,使用,

SELECT count(alertid) as cnt,date(alertdate) as alertDate 
FROM alertmaster a,subscriptionmaster s 
WHERE alertDate BETWEEN DATE_SUB(CURDATE(),INTERVAL 7 DAY) AND CURDATE() 
GROUP BY date(alertDate),s.subId 
ORDER BY a.alertDate DESC;
Run Code Online (Sandbox Code Playgroud)

产品:
13,'2011-04-08'13
,'2011-04-08'13
,'2011-04-08'14
,'2011-04-07'13
,'2011-04-07'

我想要的是:

39,'2011-04-08'27
,'2011-04-07'

怎么做到这一点?

Mar*_*ith 6

您每个日期获得多行的原因是因为您有GROUP BY date(alertDate),s.subId.只需改变你GROUP BY

GROUP BY date(alertDate)
Run Code Online (Sandbox Code Playgroud)

如果您实际上不希望每个s.subId,date组合使用单独的组.

您发布的代码也缺少JOIN条件.这是使用显式(ANSI 92)JOIN语法的首选原因之一.