복잡한 문제가 있습니다. 피봇 팅 (pivoting)으로 해결할 수 있지만 어떻게 해야할지 잘 모릅니다.여러 열을 사용하여 피벗
데이터는 같이 보인다 :
------------------------------------------------------------------
| user_id | order_id | service | head | coordinatior | contract |
------------------------------------------------------------------
| 1020 | 3 | 105 | 1 | 1 | 1 |
| 364277 | 1 | 105 | 0 | 0 | 0 |
| 364277 | 3 | 105 | 0 | 0 | 0 |
| 367277 | 2 | 3763454 | 1 | 1 | 0 |
| 1020 | 1 | 3764142 | 0 | 1 | 1 |
| 1020 | 2 | 665443 | 0 | 1 | 1 |
------------------------------------------------------------------
그리고 이것이 내가 순서에 따라이하고 싶은 방법입니다 지금
| user_id | service1 | head1 | coordinatior1 | contract1 | service2 | head2 | coordinatior2 | contract2 | service3 | head3 | coordinatior3 | contract3 |
--------------------------------------------------------------------------------------------------------------------------------------------------------------
| 1020 | 3764142 | 0 | 1 | 1 | 665443 | 0 | 1 | 1 | 105 | 1 | 1 | 1 |
| 364227 | 105 | 0 | 0 | 0 | 3763454 | 1 | 1 | 0 | 105 | 0 | 0 | 0 |
--------------------------------------------------------------------------------------------------------------------------------------------------------------
나는 그것이 바와 같이 3 개 서비스를 표시 거대한 수평 스크롤바가되지만 user_id 당 최대 10 개의 서비스가있을 수 있습니다. 이는 일부 사용자가 4 개의 서비스를 가질 수 있음을 의미합니다.
이것은 내가 쿼리를 위해 가지고있는 것입니다.
SELECT user_id, service FROM table
PIVOT (?) FOR order_id IN (0, 1, 2, 3 ,4 ,5 ,6, 7, 8, 9, 10))
나는 앞으로 나아갈 방법이 없습니다. 어떤 도움이 필요합니까? 사전에 감사
가능한 중복이 대구를
select user_id ,max(case when order_id=1 then service end) as service_1 ,max(case when order_id=2 then service end) as service_2 from table
전자를 시도 :-), http://stackoverflow.com/questions/15674373/pivot- rows-to-columns-without-aggregate – Noelgroup by user_id