-
[SQL] 프로그래머스 2단계 SQL문제 모음🧠𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/💙프로그래머스 2021. 11. 5. 17:23
2단계
1. 고양이와 개는 몇 마리 있을까?
SELECT ANIMAL_TYPE, COUNT(*) FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE ASC
2. 루시와 엘라 찾기
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ("Lucy", "Ella", "Pickle", "Rogan", "Sabrina", "Mitty") ORDER BY ANIMAL_ID ASC
IN을 사용한다.
3. 최솟값 구하기
SELECT MIN(DATETIME) FROM ANIMAL_INS
4. 동명 동물 수 찾기
SELECT NAME, COUNT(*) AS COUNT FROM ANIMAL_INS GROUP BY NAME HAVING COUNT(NAME) >= 2 ORDER BY NAME ASC
COUNT(*)라고 하면 컬럼에 COUNT(*)라고 나오기 때문에, AS를 이용해 COUNT라고 바꿔준다.
GROUP으로 묶어서 조건을 줄 때는 HAVING을 쓴다.
5. 이름이 el이 들어가는 동물 찾기
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE ANIMAL_TYPE = 'Dog' AND NAME LIKE '%el%' ORDER BY NAME ASC
LIKE를 사용한다. _는 글자수를 지정한다. %는 글자숫자를 정해주지 않는다.
6. 동물 수 구하기
SELECT COUNT(*) AS COUNT FROM ANIMAL_INS
7. 입양 시각 구하기 (1)
SELECT HOUR(DATETIME) AS HOUR, COUNT(DATETIME) AS COUNT FROM ANIMAL_OUTS GROUP BY HOUR HAVING HOUR BETWEEN 9 AND 19 ORDER BY HOUR ASC
COUNT(*) : 널값도 포함한다.
COUNT(DATETIME) : 널값을 포함하지 않는다. 널값 제외!
SELECT에서 AS로 별명을 지었으면 아래에서는 별명을 사용할 수 있다.
BETWEEN a AND b 사용하기!
8. NULL 처리하기
SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') AS NAME, SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID ASC
IFNULL(컬럼명, '채울값') : 널값이면 대체할 값
9. 중성화 여부 파악하기
SELECT ANIMAL_ID, NAME, CASE WHEN SEX_UPON_INTAKE LIKE "%Neutered%" OR SEX_UPON_INTAKE LIKE "%Spayed%" THEN "O" ELSE 'X' END AS "중성화" FROM ANIMAL_INS
CASE ~ WHEN ~ THEN ~ ELSE ~ END
CASE 컬럼
WHEN 조건1 THEN 값1
WHEN 조건2 THEN 값2
ELSE 값3
END
10. 중복제거하기
SELECT COUNT(DISTINCT NAME) AS COUNT FROM ANIMAL_INS WHERE NAME IS NOT NULL
동물의 이름 개수를 조회하는 것이기 때문에, NAME에 COUNT함수를 적용하는데,
중복데이터를 제거하고자 하므로 DISTINCT를 붙여준다.
COUNT(*)는 NULL인 것도 포함하고, COUNT(NAME)은 NAME이 NULL이 아닌 것을 포함한다.
DISTINCT는 중복을 제거한다. 여기에 NULL이 아닌 것을 비교하기 위해 IS NOT NULL을 추가한다.
11. DATETIME에서 DATE로 형변환
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, "%Y-%m-%d") AS "날짜" FROM ANIMAL_INS ORDER BY ANIMAL_ID ASC
DATE_FORMAT(DATE, 형식)을 통해 DATE의 형식을 바꿀 수 있다.
형식에는 %Y(4자리 연도), %y(2자리 연도), %m(월), %d(일), %H(24시간), %h(12시간), %i, %s가 있다.'🧠𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺 > 💙프로그래머스' 카테고리의 다른 글
[SQL] 프로그래머스 4단계 SQL문제 모음 (0) 2021.11.05 [SQL] 프로그래머스 3단계 SQL문제 모음 (0) 2021.11.05 [SQL] 프로그래머스 1단계 SQL문제 모음 (0) 2021.11.05 [위클리챌린지] 8주차 최소직사각형(JavaScript) (0) 2021.09.29 [코딩테스트 고득점 Kit / Level2 🧒🏻 / 스택/큐] 프린터(python) (0) 2021.07.08