【问题标题】: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
【解决方案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