I have this query for calculating sums of values per every year based on a date.
It works, but it is heavy, takes a minute to 2 minutes running on about 10k records
Is there a way to optimize this, or write it in a more efficient way?
"select departments sum(case when year(employment_date) = '1990' then 1 else  0 end) as '1990',"
    + "sum(case when year(employment_date) = '2010' then 1 else  0 end) as '2010',"
    + "sum(case when year(employment_date) = '2011' then 1 else  0 end) as '2011',"
    + "sum(case when year(employment_date) = '2012' then 1 else  0 end) as '2012',"
    + "sum(case when year(employment_date) = '2013' then 1 else  0 end) as '2013',"
    + "sum(case when year(employment_date) = '2014' then 1 else  0 end) as '2014',"
    + "sum(case when year(employment_date) = '2015' then 1 else  0 end) as '2015'," 
    + "sum(case when year(employment_date) = '2016' then 1 else  0 end) as '2016'," 
    + " count(departments.dept_id) as Total "
    + "from employees inner join departments on employees.employee_id=departments.employee_id AND departments.dept_id = ?";
sample resuts
    |departments  | Total | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 |
    |Data systems | 100   | 30   | 10   | 5    | 15   | 20   | 12   | 8    |
    |Social ssmp  | 70    | 10   | 10   | 15   | 15   | 4    | 6    | 10   |
 
     
     
    