2013-01-23 5 views
0

여러 개의 열 (알 수없는 번호)이있는 테이블을 4 개의 열이있는 테이블로 피벗 해제하려고했습니다.postgresql을 사용하여 피벗 해제

내 쿼리는 다음과 같습니다

INSERT INTO measurement (timestamp, sensor, value) 
SELECT d."Timestamp", 
     (SELECT s.id FROM sensor s WHERE s.name = columns.column_name), 
     (SELECT columns.column_name from sensor_list where "Timestamp" = d."Timestamp")  
FROM sensor_list d, 
     (SELECT column_name FROM information_schema.columns WHERE table_name = 'sensor_list' AND column_name <> 'Timestamp' ORDER BY ordinal_position) columns 

이 나던 작품. 내가받는 ERRORMESSAGE이다 : 그것은 문자열이나 quote_ident()와 같은 뭔가 다른 "columns.column_name" 변환하여 작업을 얻을 수있는 기회는

"ERROR: >>value<< has type numeric, but the expression is of type information_schema.sql_identifier" 

있습니까?

나는 모두 시도하지 못했습니다. 대단히 감사합니다.

답변

1

값 열의 데이터 유형이 숫자 인 경우 코드에서 오류가 발생합니다. 열 이름이나 열을 지정 하시겠습니까

+0

column_name을 사용하고 싶습니다. sensor_list는 다음과 같습니다. Timestamp | 센서 1 | 센서 2 | 센서 3 | ... | 센서 999 | ------------------------------------------------- ------------ 시간 | 가치 | 가치 | ... –