У меня есть таблица с тремя столбцами: Name, Year и Cnt. Я хочу, чтобы сгруппировать все строки по имени и отображать Cnt за каждый год в отдельной колонке На данный момент у меня есть:SQL Server query - конвертировать не агрегированный столбец в столбцы (вместо суммы или подсчета)
SELECT
Name,
SUM(iif(Year = 2010, Cnt, 0)) [2010],
SUM(iif(Year = 2011, Cnt, 0)) [2011],
SUM(iif(Year = 2012, Cnt, 0)) [2012],
SUM(iif(Year = 2013, Cnt, 0)) [2013],
SUM(iif(Year = 2014, Cnt, 0)) [2014],
SUM(iif(Year = 2015, Cnt, 0)) [2015],
SUM(iif(Year = 2016, Cnt, 0)) [2016]
FROM cte
GROUP BY Name
Но, похоже, крайне уродливое решение. Любые идеи?
Вам нужна 'PIVOT' таблица. – iamdave
К сожалению, у меня нет опыта работы с PIVOT, особенно если мне нужно сгруппировать, если бы вы могли предоставить некоторый код, чтобы помочь - я был бы (почти) вечно благодарен :) –
Это точно. – Hogan