내가 같은 테이블을 변환하는 동적 SQL SCRIPT 아래를 사용한
는
(1, ATTRIBUTENAME1, Attributevalue1)
(1, ATTRIBUTENAME2, Attributevalue2)
(2, AttributeName1, Attributevalue1)
(2, AttributeName2, Attributevalue2)
.
.
.
(11113, ATTRIBUTENAME2, Attributevalue2) 테이블에
포맷 아래
(된 Datapoint, ATTRIBUTENAME1, ATTRIBUTENAME2, .........로 AttributeNamen)
(1, AttributeValue1, AttributeValue2, .........................)
(2, AttributeValue1, AttributeValue2, ..... ....................)
.
.
.
(11113, AttributeValue1, AttributeValue2, .........................)
======== ====== DYNAMIC SQL 스크립트 ================
SET @sql = NULL;<br/>
SELECT<br/>
GROUP_CONCAT(DISTINCT<br/>
CONCAT(<br/>
'max(CASE WHEN AttributeName = ''',<br/>
AttributeName,<br/>
''' THEN AttributeValue END) AS `',
AttributeName, '`'<br/>
)<br/>
) INTO @sql<br/>
FROM yourtable;<br/>
<br/>
SET @sql <br/>
= CONCAT('SELECT datapoint, ', @sql, ' <br/>
from yourtable<br/>
group by datapoint');<br/>
PREPARE stmt FROM @sql;<br/>
EXECUTE stmt;<br/>
DEALLOCATE PREPARE stmt;<br/>
문제 : 나는 열 SQL 번호에서 실행하고 limit.I 노하우 내 테이블에 많은 NULL 값이 있기 때문에 SPARSE 컬럼을 사용해야한다.
위의 SQL 스크립트에서 열을 어떻게 SPARSE 할 수 있습니까?
@bluefeet 좀 보시고 싶습니까? –
메타 데이터 테이블의 레코드로 특성 이름을 사용하지 않고 값 테이블의 키를 사용하는 이유는 무엇입니까? –