/dev/joschi

Ramblings, rants, and rabid speculations

ASCII Bar Charts Mit MySQL

Mit ein bisschen Hirnschmalz und der Funktion REPEAT kann man mit MySQL schöne ASCII Grafiken erstellen:

mysql> select Name, REPEAT("#", Value/20.0+1) Graph FROM Month;
+-----------+------------------------------------------------+
| Name      | Graph                                          |
+-----------+------------------------------------------------+
| January   | ####################                           |
| February  | ############################################## |
| March     | #####################                          |
| April     | #############                                  |
| May       | ###                                            |
| June      | ########################                       |
| July      | ##########                                     |
| August    | #############################                  |
| September | #############                                  |
| October   | #########################                      |
| November  | ######################################         |
| December  | ############                                   |
+-----------+------------------------------------------------+
12 rows in set (0.00 sec)

Schauen wir uns das mal für die Tabelle spamblocklog an, in welcher alle abgelehnten Kommentare für Beiträge in diesem Blog stehen:

mysql> SELECT `entries`.title, COUNT(`spamblocklog`.entry_id) AS anzahl, REPEAT("#", COUNT(`spamblocklog`.entry_id)/350+1) AS graph FROM `spamblocklog` INNER JOIN `entries` ON `entries`.id = `spamblocklog`.entry_id GROUP BY `spamblocklog`.entry_id ORDER BY anzahl DESC LIMIT 10;
+-------------------------------------+--------+-------------------------+
| title                               | anzahl | graph                   |
+-------------------------------------+--------+-------------------------+
| Kleines Experiment mit mwcollect    |   7781 | ####################### |
| Internet-Rundfunkgebühr für PCs     |    434 | ##                      |
| Apache -> lighttpd                  |    171 | #                       |
| pgLOGd                              |    119 | #                       |
| Thomann Produktreviews              |     99 | #                       |
| Zwiebeln für den Weltfrieden        |     97 | #                       |
| Update auf S9Y 0.8                  |     85 | #                       |
| Xen: Wie VMWare, nur ganz anders... |     72 | #                       |
| Privateer Remake und WCU            |     69 | #                       |
| Privateer Remake 1.2                |     59 | #                       |
+-------------------------------------+--------+-------------------------+
10 rows in set (0.04 sec)

Erschreckend, nicht wahr? ;)

[Gefunden bei Mike Kruckenberg, Original bei Squarebits Blog]

mysql

Comments