So there I was, contemplating whether I could produce a nice and simple bar chart showing the number of films I’ve watched per month. Using just MySQL.
I knew it was easy to produce a simple numerical count with count(*) and a group by clause, but a bar chart? Turns out it was easy with the repeat string function.
mysql> select date_format(whence, "%Y-%m") "Month",
repeat('*', count(*)) "Number of Films"
from films group by date_format(whence, "%Y-%m");
+---------+------------------------------------------------+
| Month | Number of Films |
+---------+------------------------------------------------+
| 2007-05 | **** |
| 2007-06 | ****** |
| 2007-07 | ****** |
| 2007-08 | ***** |
| 2007-09 | ****** |
| 2007-10 | *** |
| 2007-12 | **** |
| 2008-01 | ***** |
| 2008-02 | **** |
| 2008-03 | * |
| 2008-04 | ***** |
| 2008-05 | ***** |
| 2008-06 | ****** |
| 2008-07 | **** |
| 2008-08 | ***** |
| 2008-09 | ***** |
| 2008-10 | **** |
| 2008-11 | ***** |
| 2008-12 | *** |
| 2009-01 | *** |
| 2009-03 | ** |
| 2009-04 | *** |
| 2009-05 | ** |
| 2009-06 | **** |
| 2009-07 | **** |
| 2009-08 | * |
| 2009-09 | ** |
| 2009-10 | **** |
| 2009-11 | ** |
| 2009-12 | ** |
| 2010-01 | ********** |
| 2010-02 | ********** |
| 2010-03 | ************************* |
| 2010-04 | ***************************** |
| 2010-05 | ********************************************** |
| 2010-06 | *********************** |
| 2010-07 | **************** |
| 2010-08 | ********** |
| 2010-09 | ************ |
| 2010-10 | ********** |
| 2010-11 | ******** |
| 2010-12 | ********* |
| 2011-01 | ******************* |
| 2011-02 | ************* |
| 2011-03 | ** |
| 2011-04 | ************ |
| 2011-05 | ******** |
| 2011-06 | *** |
| 2011-07 | **** |
| 2011-08 | ********************* |
| 2011-09 | * |
| 2011-10 | ** |
| 2011-11 | *************** |
| 2011-12 | ******************** |
| 2012-01 | ******************** |
| 2012-02 | ******* |
| 2012-03 | ******* |
| 2012-04 | ***** |
| 2012-05 | ****** |
| 2012-06 | ******* |
| 2012-07 | ************** |
| 2012-08 | ************ |
| 2012-09 | *************** |
| 2012-10 | ******************* |
| 2012-11 | **************** |
| 2012-12 | ******* |
| 2013-01 | ************* |
| 2013-02 | ************* |
| 2013-03 | ****************** |
| 2013-04 | ****************** |
| 2013-05 | ******** |
| 2013-06 | ************ |
| 2013-07 | ************** |
| 2013-08 | *** |
| 2013-09 | ************* |
| 2013-10 | ******** |
| 2013-11 | *************** |
| 2013-12 | *********************** |
| 2014-01 | ************************* |
| 2014-02 | ******** |
| 2014-03 | ************* |
| 2014-04 | **************** |
| 2014-05 | ************ |
+---------+------------------------------------------------+
83 rows in set (0.02 sec)
Leave a Reply