[TIL] 10/18 SQL 프로그래머스 코딩 테스트 연습
SQL 기본 강의만 쭉 듣고서 캠프 합류 전에 밀려있던 코드카타 풀기 시작 !
강의 들을 때는 당연하게 이해되던 것들이 막상 쓰려고 하니 아직 잘 안떠오르고 어색한 것들이 많았다.
아래는 틀린 문제들 정리 🤦
SELECT NAME, COUNT(NAME)
FROM ANIMAL_INS
WHERE COUNT(NAME)>=2
GROUP BY NAME
ORDER BY NAME
-> (오류) **SQL 실행 중 오류가 발생하였습니다.**
**Invalid use of group function**
→ < GROUP BY > 와 < HAVING > 을 같이 사용했다.
한번 GROUP BY 로 묶은 그룹 내에서 추가 조건이 있다면, WHERE 이 아니라 GROUP BY - HAVING 의 조합을 쓴다.
SELECT NAME, COUNT(NAME)
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT(NAME) >= 2
ORDER BY NAME
SELECT NAME, MIN(DATETIME)
FROM ANIMAL_INS
ORDER BY DATETIME
-> DATETIME 에 제일 최소값을 찾으면 될 줄 알았다
→ ORDER BY 에 LIMIT 을 걸어서 상위 데이터를 추출한다
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME LIMIT 1
(+) ❔ 이후 추가 확인 필요한 점 : 다른 문제 풀이 중 아직 해결안된 궁금증
위에꺼는 안되는데 밑에꺼는 왜 MIN(DATETIME) 으로 되는지..? 알아봐야겠다
SELECT MIN(DATETIME) FROM ANIMAL_INS
SELECT COUNT(AGE) USERS FROM USER_INFO WHERE AGE is NULL
SELECT COUNT(*) USERS
FROM USER_INFO
WHERE AGE IS NULL