Преобразовать таблицу SQL SERVER - PullRequest
0 голосов
/ 30 августа 2018

у меня есть эта таблица таблица с оценщиками и оценщиками.

Каждая строка в таблице выше - это отношения между двумя людьми (Первая строка: человек a оценивает человека b, Вторая строка человек a оценивает человека c и т. Д.).

Я хочу превратить эту таблицу в такую Требуемый выход

Итак, каждая строка будет соответствовать одному оценщику, а каждый столбец будет оценен людьми. (Поскольку некоторые оценщики имеют меньше людей, чтобы оценить, чем другие, оставшиеся столбцы для того, у кого нет такого количества оцениваемых, будут НЕДЕЙСТВИТЕЛЬНЫМИ.

Большое спасибо, надеюсь, вы можете помочь мне

1 Ответ

0 голосов
/ 30 августа 2018

Поскольку у вас есть тег SQL Server, я бы использовал функцию row_number() с условным агрегированием:

select evalutor, 
       max(case when seq = 1 then evalutee end) as evalutee1,
       max(case when seq = 2 then evalutee end) as evalutee2, 
       max(case when seq = 3 then evalutee end) as evalutee3 
from (select t.*, row_number() over (partition by evalutor order by evalutee) as seq
      from table t
     ) t
group by evalutor; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...