2017-04-24 5 views
0

다음과 같은 데이터가 있습니다. 하나의 범주가 많은 열 1과 각 범주의 값이있는 열 2입니다. 이 정보를 변환하거나 피벗하여 여러 열의 카테고리 그룹에 대한 각 값을 표시해야합니다.하나의 열을 여러 열로 선택하십시오.

col1  col2  col3  col4 col5 col6 
----------------------------------------------- 
1   a 
2   b   c  d 
3   e   f 
4   g   h 

이 TB1 수 당에는 7 개 이상의 값이 없습니다 (2 열) 그룹 (1 열) :

col1  col2 
---------------- 
1   a  
2   b 
2   c 
2   d 
3   e 
3   f 
4   g 
4   h 

그리고이 결과를해야합니다. tb1 열 2의 모든 값은 다르고 약 +50 개의 레코드입니다.

+3

태그 질문을하면 사용하고 있습니다. 'col2'가 왜 반복 되는가? 세 개의 빈 열은 무엇입니까? –

+3

결과에서 col1 (2)의 D는 어디에 있습니까? – xQbert

+1

예상 결과에서 col1 두 번째 행의 결과가 다른 점은 무엇입니까? – Biswabid

답변

1

테이블을 피벗하려고하지만 테이블에 현재 피벗 할 필드 ("col1", "col2", "col3"등)가 없습니다. col1로 분할 된 행 번호가 필요합니다. Jet 데이터베이스는 ROW_NUMBER 기능을 제공하지 않습니다, 그래서 당신은 그 자체로 테이블을 결합하여 가짜가 : 이제 row_num에 피벗 할 수

select t1.col1, t1.col2, count(*) as row_num 
from [Sheet1$] t1 
inner join [Sheet1$] t2 on t2.col1 = t1.col1 and t2.col2 <= t1.col2 
group by t1.col1, t1.col2 

을 : 데이터베이스와

transform Min(x.col2) select x.col1 
from(
    select t1.col1, t1.col2, count(*) as row_num 
    from [Sheet1$] t1 
    inner join [Sheet1$] t2 on t2.col1 = t1.col1 and t2.col2 <= t1.col2 
    group by t1.col1, t1.col2 
    ) x 
group by x.col1 
pivot x.row_num 
관련 문제