Вращение Осей со столом SQL

У меня есть стол:

product   asset    count
 foo        x        1
 bar        x        0
 foo        y        2
 bar        y        1

это - сокращенная версия. Есть приблизительно 80 активов и несколько сотен продуктов.

Действительно ли возможно с SQL превратить этот стол во что-то вроде этого?

product   asset x   asset y
foo          1         2
bar          0         1

bearing in mind that this data has come from three tables, products, assets and assets_products

1
nl ja de
Действительно ли это возможно? Несомненно. Что вы попробовали?
добавлено автор user554546, источник

1 ответы

То, что вы хотите сделать, crosstab .

Чтобы сделать это, можно использовать tablefunc contrib, и следующий вопрос:

SELECT * FROM crosstab(
    'SELECT product, asset, count FROM  ORDER BY 1, 2')
    AS (product text, asset_x int, asset_y int);
1
добавлено
Проблема здесь состоит в том, что я хочу, чтобы колонки типов актива велись по условию.
добавлено автор Neil Middleton, источник
@NeilMiddleton, таким образом, единственные решения, кажется, динамично производит вопрос или даже показывает результат динамично на вашем заявлении (кажется лучше), потому что PostgreSQL всегда нужна информация о колонках, возвращенных вопросом.
добавлено автор MatheusOl, источник
pgsql – PostgreSQL
pgsql – PostgreSQL
2 429 участник(ов)

Чат про PostgreSQL

DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.