【问题标题】:MySQL count all items, aggregate less than as othersMySQL计算所有项目,聚合少于其他项目
【发布时间】:2015-05-06 20:53:09
【问题描述】:

我需要从许多 mysql 5.6 表中获取数据来创建饼图。如您所知,如果饼图表示有意义的数据,它就很有用。但是,当您有许多无意义的数据点时,例如小于 .. 或不重要的值,饼图就会变得不清楚。我需要统计每个类别的出现次数,并将小于 X 的不显着计数汇总为 OTHERS。

现在我做一个

Select category, count(*) as total from table_name group by category.  

它给了我每个类别,而且很重要。如何获取总数超过 50 的类别和低于 50 的类别,在“其他”下进行汇总。谢谢,豪尔赫。

【问题讨论】:

    标签: mysql pie-chart summarization


    【解决方案1】:
    SELECT IF(total > 50, category, 'Others') AS category, SUM(total) AS total
    FROM (SELECT category, COUNT(*) AS total
          FROM table_name
          GROUP BY category) AS subquery
    GROUP BY category
    

    【讨论】:

    • 优秀的答案@Barmar。谢谢,
    【解决方案2】:

    假设您要汇总少于 4 个条目的所有类别:

    select category, count(*) as total from table_name group by category having count(*) >= 4
    
    union
    
    select 'others', sum(c) as total from (
      select category, count(*) c from table_name group by category having count(*) < 4
    ) tmp
    

    【讨论】:

      猜你喜欢
      • 2017-10-19
      • 1970-01-01
      • 2012-04-14
      • 2016-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      相关资源
      最近更新 更多