728x90
반응형
예를들어 이런 테이블 A가 있다고 가정해봅시다.
국적 | 성별 | 나이 |
한국 | 여 | 11 |
미국 | 남 | 24 |
한국 | 남 | 30 |
한국 | 여 | 43 |
캐나다 | 여 | 16 |
미국 | 여 | 33 |
한국 | 남 | 29 |
미국 | 남 | 25 |
캐나다 | 여 | 51 |
그리고 저는 이런 결과를 도출하고 싶었습니다.
총 | 한국 | 미국 | 캐나다 | 남 | 여 | 10대 | 20대 | 30대 | 40대 |
? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
이 때 하나의 쿼리로 group by 절을 이용하여 결과값을 도출하려 했으나
아무리 해도 방법이 떠오르지 않아 애를 먹던 중
https://blog.shovelman.dev/841
이 분의 블로그를 보고 정답을 알았습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | SELECT COUNT(*) as 총 , COUNT(IF(국적 = '한국', 국적, NULL)) as 한국 , COUNT(IF(국적 = '미국', 국적, NULL)) as 미국 , COUNT(IF(국적 = '캐나다', 국적, NULL)) as 캐나다 , COUNT(IF(성별 = '남', 성별 , NULL)) as 남 , COUNT(IF(성별 = '여', 성별 , NULL)) as 여 , COUNT(IF(나이 >= 10 AND 나이 < 20, 나이 , NULL)) as 10대 , COUNT(IF(나이 >= 20 AND 나이 < 30, 나이 , NULL)) as 20대 , COUNT(IF(나이 >= 30 AND 나이 < 40, 나이 , NULL)) as 30대 , COUNT(IF(나이 >= 40 AND 나이 < 50, 나이 , NULL)) as 40대 FROM A; | cs |
이런식으로 작성해주시면
group by 절 없이, 여러개의 조건으로 한번에 통계를 추출할 수 있습니다.
도움을 주신 shovelman 님께 감사드립니다.
728x90
반응형
'개발 > SQL' 카테고리의 다른 글
자신의 자바 버전에 맞는 mariadb jdbc 확인하는 법 (0) | 2023.07.24 |
---|---|
오라클DB Oracle 문자열에 구분자를 여러 행으로 분리하기 (0) | 2023.05.12 |
오라클 시퀀스를 사용하지 않고 자동 증가하는 id 값 만들기 (0) | 2021.06.23 |
오라클 시작일 종료일 사이의 연, 월, 주, 일 추출 쿼리 (1) | 2021.06.11 |
postgresql generate_series 간단 설명 및 날짜 생성 쿼리 (0) | 2020.09.04 |