MySQLのSQLクエリーだけで棒グラフを表示する方法
MySQLの出力結果を棒グラフで表示できたらいいなぁと思っていろいろ実験していたらうまくいってしまったのでご紹介してみます。
【普通の場合】
普通は以下のようになりますよね。出力結果だけ見てもどうもよくわかりません。
■SQL文
mysql> select date_format(regdate, "%Y/%m/%d %H") date, count(*) count from usert group by date order by date asc;
■出力結果
+---------------+-------+
| date | count |
+---------------+-------+
| 2010/11/01 00 | 405 |
| 2010/11/01 01 | 276 |
| 2010/11/01 02 | 188 |
| 2010/11/01 03 | 148 |
| 2010/11/01 04 | 96 |
| 2010/11/01 05 | 63 |
| 2010/11/01 06 | 85 |
| 2010/11/01 07 | 142 |
| 2010/11/01 08 | 164 |
| 2010/11/01 09 | 137 |
| 2010/11/01 10 | 177 |
| 2010/11/01 11 | 177 |
| 2010/11/01 12 | 248 |
| 2010/11/01 13 | 178 |
| 2010/11/01 14 | 148 |
| 2010/11/01 15 | 158 |
| 2010/11/01 16 | 195 |
| 2010/11/01 17 | 213 |
| 2010/11/01 18 | 243 |
| 2010/11/01 19 | 236 |
| 2010/11/01 20 | 274 |
| 2010/11/01 21 | 310 |
| 2010/11/01 22 | 309 |
| 2010/11/01 23 | 280 |
+---------------+-------+
【棒グラフの場合】
そして今度は出力結果を棒グラフにした場合の例になります。ものすごくわかりやすくなりました。
■SQL文
mysql> select date_format(regdate, "%Y/%m/%d %H") date, REPEAT("#", count(*)/10) graph from usert group by date order by date asc;
■出力結果
+---------------+-------------------------------------------+
| date | graph |
+---------------+-------------------------------------------+
| 2010/11/01 00 | ######################################### |
| 2010/11/01 01 | ############################ |
| 2010/11/01 02 | ################### |
| 2010/11/01 03 | ############### |
| 2010/11/01 04 | ########## |
| 2010/11/01 05 | ###### |
| 2010/11/01 06 | ######### |
| 2010/11/01 07 | ############## |
| 2010/11/01 08 | ################ |
| 2010/11/01 09 | ############## |
| 2010/11/01 10 | ################## |
| 2010/11/01 11 | ################## |
| 2010/11/01 12 | ######################### |
| 2010/11/01 13 | ################## |
| 2010/11/01 14 | ############### |
| 2010/11/01 15 | ################ |
| 2010/11/01 16 | #################### |
| 2010/11/01 17 | ##################### |
| 2010/11/01 18 | ######################## |
| 2010/11/01 19 | ######################## |
| 2010/11/01 20 | ########################### |
| 2010/11/01 21 | ############################### |
| 2010/11/01 22 | ############################### |
| 2010/11/01 23 | ############################ |
+---------------+-------------------------------------------+
The comments to this entry are closed.
Comments