반응형
- 고양이와 개는 몇마리 있을까(https://programmers.co.kr/learn/courses/30/lessons/59040)
코드는 아래와 같다.
-- 코드를 입력하세요
SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS count
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE
SELECT문에서 각각의 ANIMAL_TYPE 에 대해서 대응해서 count값이 매칭된다.
GROUP BY를 사용해서 ANIMAl_TYPE끼리 묶어서 출력하는게 핵심이다.
동물의 이름 순서대로 출력하기 위해서는 ORDER BY를 사용한다.
-헤비 유저가 소유한 장소(https://programmers.co.kr/learn/courses/30/lessons/77487)
SELECT *
FROM PLACES
WHERE HOST_ID IN (
SELECT HOST_ID
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(HOST_ID)>1
)
SELECT 는 우선 조건에 만족하는 컬럼 전체를 그대로 출력한다.
WHERE 에서 IN은 조건에 포함되는 경우를 모두 가져온다.
즉, 일치하길 원하는 조건을 뒤에 적는다.
SELECT #####
WHERE HOST_ID IN (760849, 30900122)
인 셈이다.
그럼 상세하게 WHERE절의 서브쿼리에 대해서 살펴보자.
GROUP BY 를 사용해서 묶고, HAVING(조건) => COUNT(HOST_ID)한 값이 1보다 큰 컬럼만 고른다.
반응형
'데이터베이스 > SQL' 카테고리의 다른 글
Mybatis Long 타입 매핑 오류 (0) | 2023.05.09 |
---|