@ewb

Как с помощью sql создать сводную таблицу в mysql? (pivot table mysql)?

Здравствуйте!
MySQL
Например у нас есть таблица:

[ид_товара | ид_цены | цена] -> (Схема таблицы)

(Данные)
товар1 | цена1 | 100
товар1 | цена2 | 50
товар1 | цена3 | 130

товар2 | цена1 | 300
товар2 | цена2 | 70
товар2 | цена3 | 100

Как только с помощью sql вывести такой результат:
[ид_товара | ид_цена1 | ид_цена2 | ид_цена3 ] -> схема

данные
товар1 | 100 | 50 | 130
товар2 | 300 | 70 | 100

То есть получается вертикальное расположение данных надо перенести в горизонтальное (это я так себе представляю).

Так как насколько далось узнать в MsSQL есть уже встроенная фича для этого pivot table.
  • Вопрос задан
  • 6024 просмотра
Решения вопроса 1
mgyk
@mgyk
Можно так, соотвественно для каждой колонки нужно добавить отдельный IF
select item, 
SUM(IF(price_id = 'price1', price, 0))  as price1, 
SUM(IF(price_id = 'price2', price, 0)) as price2 
FROM pivot_sample GROUP BY item;


sqlfiddle.com/#!2/d2367/1/0
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Kwisatz
@Kwisatz
Больше web-приложений, хороших и разных
еще вариант:
select tovar_id,
   group_concat(price_id order by price_id asс separator ',') as price_ids,
   group_concat(price order by price_id asс separator ',') as prices
from prices group by tovar_id


И разобрать уже в приложении
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы