помогите разобраться с pivot
От: corpse56  
Дата: 13.01.20 16:30
Оценка:
Здравствуйте!
Знаю, что эту задачу можно решить с помощью оператора pivot, но никак не соображу как.

Есть такая таблица:


  select 'st1' st,'abc' pr
  union all
  select 'st2' st,'def' pr
  union all
  select 'st1' st,'def' pr
  union all
  select 'st2' st,'abc' pr
  union all
  select 'st1' st,'abc' pr
  union all
  select 'st2' st,'xyz' pr


Хочется получить вот такой результат:

----------------------------
pr | st1 | st2
----------------------------
abc | 2 | 1
def | 1 | 1
xyz | 0 | 1
----------------------------

И если это вообще возможно, то ещё и вот такой:

----------------------------
pr | st1 | st2 | total
----------------------------
abc | 2 | 1 | 3
def | 1 | 1 | 2
xyz | 0 | 1 | 1


Пример реальный, просто сведённый к абстрации. st может иметь только 2 значения. pr может иметь много разных значений.
Используется MS SQL 2008R2
Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.