Year
is a known object in MYSQL, if you have a column named 'year', try it with a back-tick '`'::
SELECT
CONCAT('SELECT `year`,',
GROUP_CONCAT(sums),
' FROM yourtable GROUP BY `year`')
FROM (
SELECT CONCAT('SUM(name=\'', name, '\') AS `', name, '`') sums
FROM yourtable
GROUP BY name
ORDER BY COUNT(*) DESC
) s
INTO @sql;
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;