MySQLにSSHなどコマンドラインから接続している時に、データの傾向をつかむためにSQLだけで簡単なグラフを書く方法を説明します。
MySQLにはrepeat関数というものがあり、この関数では第二引数で指定した回数分、文字を繰り返し表示させることができます。
> select repeat('l', 2);
+----------------+
| repeat('l', 2) |
+----------------+
| ll |
+----------------+
1 row in set (0.00 sec)
> select repeat('a', 5);
+----------------+
| repeat('a', 5) |
+----------------+
| aaaaa |
+----------------+
この機能を利用して、グラフ化したい値を第二引数に指定することで、SQLだけで簡易的な棒グラスをコンソール上に出力することができます。
sqlだけで棒グラフを出力する方法
下記の例は、wp_postsというテーブルから、post_titleの文字数を棒グラフ化しています。
post_title列に格納されている文字列は比較的文字数が多かったため、この例では5文字ごとに1文字出力させています。
> select id,
length(post_title) as title_length,
repeat('x', length(post_title)/5) as graph
from wp_posts;
+----+--------------+-------------------------------------------+
| id | title_length | graph |
+----+--------------+-------------------------------------------+
| 1 | 39 | xxxxxxxx |
| 2 | 68 | xxxxxxxxxxxxxx |
| 3 | 96 | xxxxxxxxxxxxxxxxxxx |
| 4 | 18 | xxxx |
| 5 | 42 | xxxxxxxx |
| 6 | 53 | xxxxxxxxxxx |
| 7 | 67 | xxxxxxxxxxxxx |
| 8 | 73 | xxxxxxxxxxxxxxx |
| 9 | 34 | xxxxxxx |
| 10 | 74 | xxxxxxxxxxxxxxx |
| 11 | 89 | xxxxxxxxxxxxxxxxxx |
| 12 | 65 | xxxxxxxxxxxxx |
| 13 | 73 | xxxxxxxxxxxxxxx |
| 14 | 65 | xxxxxxxxxxxxx |
| 15 | 70 | xxxxxxxxxxxxxx |
| 16 | 62 | xxxxxxxxxxxx |
| 17 | 74 | xxxxxxxxxxxxxxx |
| 18 | 38 | xxxxxxxx |
| 19 | 46 | xxxxxxxxx |
| 20 | 207 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+----+--------------+-------------------------------------------+
20 rows in set (0.01 sec)
こちらもおススメ