MySQL创建横向直方图的解决方案
前言
直方图(Histogram)是RDBMS中提供的一种基础的统计信息,最典型的用途是估计查询谓词的选择率,以便选择优化的查询执行计划。常见的直方图种类有:等宽直方图、等高直方图、V-优化的直方图,MaxDiff直方图等等。
备注:测试数据库版本为MySQL8.0
如需要scott用户下建表及录入数据语句,可参考:
scott建表及录入数据sql脚本
一.需求
使用SQL生成横向延伸的直方图。
例如,采用横向直方图显示每个部门的志愿书,一个星号"*"表示一个员工。
返回的结果集应该如:
±-------±-------+
|deptno|cnt|
±-------±-------+
|10|***|
|20|*****|
|30|******|
±-------±-------+
二.解决方案
通过groupby进行分组,求总数,然后用lpad进行填充即可
selectdeptno, lpad('*',count(*),'*')ascnt fromemp groupbydeptno;
测试记录:
mysql>selectdeptno, ->lpad('*',count(*),'*')ascnt ->fromemp ->groupbydeptno; +--------+--------+ |deptno|cnt| +--------+--------+ |10|***| |20|*****| |30|******| +--------+--------+ 3rowsinset(0.00sec)
总结
到此这篇关于MySQL创建横向直方图的文章就介绍到这了,更多相关MySQL创建横向直方图内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!