[Programmers] SQL 공부
Date:
Problem URL : 모든 레코드 조회하기
SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID
Problem URL : 최댓값 구하기
SELECT MAX(DATETIME) AS '시간'
FROM ANIMAL_INS
Problem URL : 고양이와 개는 몇 마리 있을까
SELECT ANIMAL_TYPE, COUNT(*)
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE
Problem URL : 이름이 없는 동물의 아이디
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL
ORDER BY ANIMAL_ID
Problem URL : 없어진 기록 찾기
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS OUTS
LEFT OUTER JOIN ANIMAL_INS INS
ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.ANIMAL_ID is NULL
ORDER BY OUTS.ANIMAL_ID
Problem URL : 루시와 엘라 찾기
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
Problem URL : 우유와 요거트가 담긴 장바구니
SELECT DISTINCT CART_ID
FROM CART_PRODUCTS
WHERE NAME = 'Milk' AND
CART_ID IN (SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = 'Yogurt')
서브 쿼리 결과에서 특정 물건을 여러개 가지고 있을 수 있기 때문에, 본 절의 SELECT에 DISTINCT를 사용해주자.
SELECT DISTINCT A.CART_ID
FROM (SELECT CART_ID FROM CART_PRODUCTS WHERE NAME = 'Yogurt') A
INNER JOIN (SELECT CART_ID FROM CART_PRODUCTS WHERE NAME = 'Milk') B
ON A.CART_ID = B.CART_ID
조인을 활용할 수도 있다.
댓글