I am looking for a solution to count days in a daterange per year. My table looks like this:
+----+-----------+------------+------------+
| id | source_id | start_date | end_date   |
+----+-----------+------------+------------+
|  1 |         1 | 2015-11-01 | 2017-01-31 |
+----+-----------+------------+------------+
Now I want to count the days in between. Its easy with DATEDIFF() in complete, but how to do it per year?
I tried a kind of temp. transformation into single rows to perform count and group actions:
+----+-----------+------------+------------+
| id | source_id | start_date | end_date   |
+----+-----------+------------+------------+
|  1 |         1 | 2015-11-01 | 2015-12-31 |
+----+-----------+------------+------------+
|  1 |         1 | 2016-01-01 | 2016-12-31 |
+----+-----------+------------+------------+
|  1 |         1 | 2017-01-01 | 2017-01-31 |
+----+-----------+------------+------------+
EDIT: The desired output should like that:
+-----------+------+------+
| source_id | year | days |
+-----------+------+------+
|         1 | 2015 |   60 |
+-----------+------+------+
|         1 | 2016 |  365 |
+-----------+------+------+
|         1 | 2017 |   30 |
+-----------+------+------+
So it become possible to summarize all days grouped by source_id and year.
Is there an easy way to do it in MySQL?
 
    