PIVOT следующую таблицу в sql

CИзверните следующую таблицу

ID  Name    Category    From Date   To Date
1   A         X         1/20/2018   2/20/2018
2   A         Y         3/20/2018   4/20/2018
3   B         X         5/20/2018   6/20/2018
4   B         Y         7/20/2018   8/20/2018

к

ID  Name   X From Date  X To Date   Y From Date Y To Date
1   A      1/20/2018    2/20/2018   3/20/2018   4/20/2018
2   B      5/20/2018    6/20/2018   7/20/2018   8/20/2018

Я удалил несовместимые теги базы данных. Пожалуйста, отметьте только ту базу данных, которую вы действительно используете.

Gordon Linoff 10.08.2018 12:51
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
1
28
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Один из способов - это простой join:

select row_number() over (order by name) as id,
       name,
       tx.fromdate as x_fromdate, tx.todate as x_todate,
       ty.fromdate as y_fromdate, ty.todate as y_todate
from t tx join
     t ty
     on tx.name = ty.name and tx.category = 'x' and ty.category = 'y';

Пожалуйста, поделитесь своим планом диеты и здесь, чтобы другие могли последовать за ним и стать еще одним Гордоном.

Ankit Bajpai 10.08.2018 12:57

Вы можете выполнить агрегацию условный:

select row_number() over (order by name) as id, name,
       max(case when cat = 'X' then fromdate end),
       max(case when cat = 'X' then todate end),
       max(case when cat = 'Y' then fromdate end),
       max(case when cat = 'Y' then todate end)
from table t
group by name;

Другие вопросы по теме