MySQL 데이터 투시 표 에 대해 간단히 이야기 합 니 다.
부분 적
part_id part_type product_id
--------------------------------------
1 A 1
2 B 1
3 A 2
4 B 2
5 A 3
6 B 3
다음 표 로 돌아 가 는 조 회 를 원 합 니 다.
product_id part_A_id part_B_id
----------------------------------------
1 1 2
2 3 4
3 5 6
실제 실시 중 에 수백 만 개의 제품 부품 이 있 을 것 이다.최 적 답안
불 행 히 도 MySQL 은 PIVOT 기능 이 없 지만 취 합 함수 와 CASE 문 구 를 사용 하여 모델 링 을 할 수 있 습 니 다.동적 버 전에 대해 서 는 사전 준비 문 구 를 사용 해 야 합 니 다.
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'max(case when part_type = ''',part_type,''' then part_id end) AS part_','_id'
)
) INTO @sql
FROM
parts;
SET @sql = CONCAT('SELECT product_id,',@sql,'
FROM parts
GROUP BY product_id');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
몇 열 만 있 으 면 정적 버 전 을 사용 할 수 있 습 니 다.
select product_id,max(case when part_type ='A' then part_id end) as Part_A_Id,max(case when part_type ='B' then part_id end) as Part_B_Id
from parts
group by product_id
총결산이상 은 우리 가 당신 을 위해 수집 하고 정리 한 MySQL 동적 투시 의 모든 내용 입 니 다.문장 이 MySQL 동적 투시 가 직면 한 프로그램 개발 문 제 를 해결 하 는 데 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redash를 사용할 때 몰랐던 SQL을 쓰는 법을 배웠습니다.최근 redash에서 sql을 쓸 기회가 많고, 이런 쓰는 방법이 있었는지와 sql에 대해 공부를 다시하고 있기 때문에 배운 것을 여기에 씁니다. Redash란? 월별로 데이터를 표시하고 싶습니다 주별로 데이터를 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.