MySQL创建横向直方图的解决方案
前言
直方图(Histogram)是 RDBMS 中提供的一种基础的统计信息,最典型的用途是估计查询谓词的选择率,以便选择优化的查询执行计划。常见的直方图种类有:等宽直方图、等高直方图、V-优化的直方图,MaxDiff 直方图等等。
备注:测试数据库版本为MySQL 8.0
如需要scott用户下建表及录入数据语句,可参考:
一.需求
使用SQL生成横向延伸的直方图。
例如,采用横向直方图显示每个部门的志愿书,一个星号"*"表示一个员工。
返回的结果集应该如:
±-------±-------+
| deptno | cnt |
±-------±-------+
| 10 | *** |
| 20 | ***** |
| 30 | ****** |
±-------±-------+
二.解决方案
通过group by进行分组,求总数,然后用lpad进行填充即可
?1 2 3 4 | select deptno, lpad( '*' , count (*), '*' ) as cnt from emp group by deptno; |
测试记录:
?1 2 3 4 5 6 7 8 9 10 11 12 | mysql> select deptno, -> lpad( '*' , count (*), '*' ) as cnt -> from emp -> group by deptno; + --------+--------+ | deptno | cnt | + --------+--------+ | 10 | *** | | 20 | ***** | | 30 | ****** | + --------+--------+ 3 rows in set (0.00 sec) |
总结
到此这篇关于MySQL创建横向直方图的文章就介绍到这了,更多相关MySQL创建横向直方图内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/u010520724/article/details/113589048
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。