본문 바로가기
MySql

MySQL SQL 테이블에서 조건이있는 열 이름으로 열 값을 선택하는 방법

by 베이스 공부 2020. 12. 9.
반응형

저는 SQL을 처음 사용합니다. '고객'테이블이 있는데 이렇게 생겼습니다.

여기에 이미지 설명 입력

성별 열로 '성별'을 선택하고 연령 열로 '연령'을 선택하고 싶습니다.

여기에 이미지 설명 입력

여러 가지 방법을 시도했지만 여전히 필요한 것이 표시되지 않습니다. 제발 도와주세요.

 

해결 방법

 

한 가지 방법은 조건부 집계를 사용하는 것입니다.

SELECT name,
       MAX(CASE WHEN field = 'Gender' THEN value END) gender,
       MAX(CASE WHEN field = 'Age' THEN value END) age
  FROM customers
 GROUP BY name

다른 방법 (이 두 열에 만 관심이있는 경우)은 다음과 같습니다.

SELECT c1.name, c1.value gender, c2.value age
  FROM customers c1 JOIN customers c2
    ON c1.name = c2.name
   AND c1.field = 'Gender'
   AND c2.field = 'Age';

각 이름에 대해 성별과 연령이 모두 존재한다고 가정합니다. 그런 다음 INNER JOIN 대신 OUTER JOIN 을 사용하세요.

SELECT n.name, c1.value gender, c2.value age
  FROM
(
  SELECT DISTINCT name
    FROM customers
) n LEFT JOIN customers c1
    ON n.name = c1.name AND c1.field = 'Gender' 
    LEFT JOIN customers c2
    ON n.name = c2.name AND c2.field = 'Age';

산출:


 

참조 페이지 https://stackoverflow.com/questions/22587600

 

 

반응형

댓글