Мне нужно удалить дубликаты этой таблицы, как в таблице вывода на SQL сервере. Source_Table
Name School class Description Start_Date End_Date Andy MTC 7 Pass 2008 2009 Andy MTC 8 Pass 2009 2010 Andy STC 9 Pass 2010 2011 Andy STC 10 Failed 2011 2012 Output_Table Name School class Description Start_Date End_Date Andy MTC,STC 7,8,9,10 Pass,Pass,Pass,Failed 2008 2012
Похоже, вы хотите агрегировать:
select name, string_agg(distinct school, ','), string_agg(class, ',') within group (order by class), string_agg(description, ',') within group (order by class), min(Start_Date), max(End_Date) from t group by name
Я не использую SQL -Server, поэтому я сделал этот ответ на основе документации в Inte rnet, но я думаю, вам следует использовать:
SELECT Name, STRING_AGG(school,',') AS School, STRING_AGG(class,',') AS Class, STRING_AGG(description,',') AS Description, MIN(start_date) AS Start_date, MAX(end_date) AS End_date FROM source_table GROUP BY Name
Подробнее о STRING_AGG в https://www.mytecbits.com/microsoft/sql-server/concatenate-rows-using-string_agg
STRING_AGG