반응형
저는 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
반응형
'MySql' 카테고리의 다른 글
MySQL 현재 GMT 시간에 대한 MySQL 쿼리 (0) | 2020.12.09 |
---|---|
MySQL mysql 연결 검사가 null이 아닙니다. (0) | 2020.12.09 |
MySQL 정의되지 않은 상수 mysql_error 사용- 'mysql_error로 가정 (0) | 2020.12.09 |
MySQL 한 열에 동일한 값을 포함하는 MYSQL 행을 계산하는 PHP (0) | 2020.12.09 |
MySQL mysql 업데이트 쿼리의 값 증가 (0) | 2020.12.09 |
댓글