数据库
首页 > 数据库> > MySQL多计数在一个查询中

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