MySQL多计数在一个查询中
作者:互联网
如何使用不同的查询条件对一个表中两列的记录进行计数?
表看起来像:
user_id | date | status
------------------------------
1 | 2011-01-02 | 1
2 | 2011-01-03 | 1
3 | 2011-01-02 | 0
4 | 2011-01-03 | 1
1 | 2011-01-02 | 1
我想在一个查询中计算两个值.第一个是按状态划分的user_id组数,第二个是按日期划分的user_id组数.
我怎样才能做到这一点?
解决方法:
在同一查询中不能有不同的GROUP BY子句-每个计数都必须在独立的查询中.
但是您可以使用子选择(SELECT子句中的子查询)在单个查询/结果集中返回输出:
SELECT COUNT(a.user_id) AS numUsersPerStatus,
(SELECT COUNT(b.user_id)
FROM YOUR_TABLE b
GROUP BY b.date) AS numUsersPerDate
FROM YOUR_TABLE a
GROUP BY a.status
标签:aggregate-functions,sql,mysql 来源: https://codeday.me/bug/20191102/1994241.html