Как данные показывают столбец строк данных в Postgresql? - PullRequest
0 голосов
/ 31 декабря 2018

Вот мои данные и запрос.Я хочу, чтобы данные строк отображались в столбцах ... Может кто-нибудь помочь мне изменить запрос?Я использую запросы PostgreSQL.

select 
    ss.name, ip.product_name, ssr.quantity 
from 
    services_servicerecipe ssr
inner join 
    services_service ss on ssr.service_id = ss.id
inner join 
    inventory_product ip on ssr.product_id = ip.id
order by 
    ss.name

Вывод:

Service_name |  Product_name    |  Quantity
-------------+------------------+-----------
Balayage     |      7.3-revlon  |   2
Balayage     |      701-revlon  |   1

Я хочу, чтобы это выглядело так

Service_name |  Product_name     |   Quantity   |  Product_name    | Quantity
-------------+-------------------+--------------+------------------+----------
Balayage     |      7.3-revlon   |   2          |     701-revlon   |   1

1 Ответ

0 голосов
/ 31 декабря 2018

Вот вариант поворота, используя ROW_NUMBER:

with cte as (
    select ss.name, ip.product_name, ssr.quantity,
        row_number() over (partition by ss.name order by ip.product_name) rn
    from services_servicerecipe ssr
    inner join services_service ss on ssr.service_id = ss.id
    inner join inventory_product ip on ssr.product_id = ip.id
)

select
    name,
    max(case when rn = 1 then product_name end) as product1,
    max(case when rn = 1 then quantity end) as quantity1,
    max(case when rn = 2 then product_name end) as product2,
    max(case when rn = 2 then quantity end) as quantity2
from cte
group by name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...