2014年9月11日木曜日

コンソールからMySQLでCOUNT .. GROUP BYするついでに視覚化してみる

想定しているのはこんなクエリー。


mysql56> SELECT DATE_FORMAT(timestamp, '%Y-%m') AS month, COUNT(*) AS count FROM tweets GROUP BY 1;
+---------+-------+
| month   | count |
+---------+-------+
| 2010-08 |     3 |
| 2010-09 |    90 |
| 2010-10 |    21 |
..
| 2014-07 |   608 |
| 2014-08 |   575 |
| 2014-09 |   276 |
+---------+-------+
50 rows in set (0.09 sec)


全文検索のテスト用にtweets.csvを食わせるSQL のエントリーで書いたそのまんまのDDLでtweets.csvを食わせたテーブル。
コンソールから作業していてこんなクエリーを叩いてもちょっと味気がなかったので、ひねってみた。


mysql56> SELECT DATE_FORMAT(timestamp, '%Y-%m') AS month, COUNT(*) AS count, CONCAT(REPEAT('+', COUNT(*) / 100), REPEAT('=', (COUNT(*) % 100) / 10), REPEAT('-', COUNT(*) % 10)) AS bar FROM tweets GROUP BY 1;
+---------+-------+----------------------------+
| month   | count | bar                        |
+---------+-------+----------------------------+
| 2010-08 |     3 | ---                        |
| 2010-09 |    90 | +=========                 |
| 2010-10 |    21 | ==-                        |
..
| 2014-07 |   608 | ++++++=--------            |
| 2014-08 |   575 | ++++++========-----        |
| 2014-09 |   276 | +++========------          |
+---------+-------+----------------------------+
50 rows in set (0.09 sec)

別に役に立ちはしないんだけど、人に説明するときにやって見せるとちょっと「おおお」と言われることが多い。

0 件のコメント :

コメントを投稿