ASCII Bar Charts mit MySQL
Mit ein bisschen Hirnschmalz und der Funktion REPEAT kann man mit MySQL schöne ASCII Grafiken erstellen:
[code]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)[/code]
Schauen wir uns das mal für die Tabelle spamblocklog an, in welcher alle abgelehnten Kommentare für Beiträge in diesem Blog stehen:
[code]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)[/code]
Erschreckend, nicht wahr?
[Gefunden bei Mike Kruckenberg, Original bei Squarebits Blog]
[code]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)[/code]
Schauen wir uns das mal für die Tabelle spamblocklog an, in welcher alle abgelehnten Kommentare für Beiträge in diesem Blog stehen:
[code]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)[/code]
Erschreckend, nicht wahr?
[Gefunden bei Mike Kruckenberg, Original bei Squarebits Blog]

