zoukankan      html  css  js  c++  java
  • mysql 统计 group by 之后的 group 的个数

    如果将 count(*) 和 group by 一起使用,count(*) 统计的将会是每个 group 里面的行数,而不是 group 的个数。

    如果你想统计 group 的个数,需要将 group by 查询放到子查询里面,然后在主查询里面再使用 count(*)。

    如下所示,第一个查询的 count(*) 统计的只是特定的 Category 和 Year 下的总行数,而第二个查询才是第一个查询的 group 的个数。

    mysql> SELECT tag AS Category, YEAR(created) AS Year, 
       COUNT(*) AS Counts FROM fyi_links GROUP BY tag, 
       YEAR(created);
    +----------+------+--------+
    | Category | Year | Counts |
    +----------+------+--------+
    | DBA      | 2005 |      1 |
    | DBA      | 2006 |      2 |
    | DEV      | 2004 |      1 |
    | DEV      | 2006 |      1 |
    | SQA      | 2003 |      1 |
    | SQA      | 2006 |      1 |
    +----------+------+--------+
    6 rows in set (0.00 sec)
    
    mysql> SELECT COUNT(*) FROM (
       SELECT tag AS Category, YEAR(created) AS Year, 
       COUNT(*) AS Counts FROM fyi_links GROUP BY tag, 
       YEAR(created) ) groups;
    +----------+
    | COUNT(*) |
    +----------+
    |        6 |
    +----------+
    1 row in set (0.00 sec)
    

      

  • 相关阅读:
    信息收集与扫描
    流密码
    信息安全面临的威胁
    .net core Web应用启动类
    .net core 1.0 Web MVC 自定义认证过程
    彻底脱离循环与结束当下循环
    Java多线程:Thread中的实例方法
    memcached安装问题
    五月的仓颉
    json时间格式化方法
  • 原文地址:https://www.cnblogs.com/eleven24/p/9232567.html
Copyright © 2011-2022 走看看