在groupby中获取count()的总和

时间:2011-04-08 22:12:27

标签: 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;

生产:
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'

如何实现这一目标?

1 个答案:

答案 0 :(得分:6)

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

即可
GROUP BY date(alertDate)

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

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