TIL 14일차 : limit, group by having, 미니 1일차, 코드 2일차
2023. 12. 19. 19:01ㆍ회고/TIL(매일)
도전한 점
- 미니 프로젝트 데이터 분석 회의
- 팀노션 보기 좋게 정리
- 데이터 분석 강의 듣기
- SQL 코드카타 5문제 풀이
- 실습 1. 아픈 동물 찾기 : WHERE절 이용하기
SELECT ANIMAL_ID,
NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION = 'Sick'
ORDER BY ANIMAL_ID
- 실습 2. 어린 동물 찾기 : WHERE절 다음에 <>, !=, NOT LIKE 모두 정답이다.
SELECT ANIMAL_ID,
NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION <> 'Aged'
ORDER BY ANIMAL_ID
- 실습 3. 최솟값 구하기 : MIN, LIMIT도 가능하다.
SELECT MIN(DATETIME) TIME
FROM ANIMAL_INS
SELECT DATETIME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1
*LIMIT N : 상위 N개의 데이터 행을 보여줘라는 의미이다.
*LIMIT N OFFSET M : M번째 까지는 읽지 말고 그 다음부터 세라.
- 실습 4. 동명 동물 수 찾기 : 서브쿼리, GROUP BY HAVING을 이용한다.
SELECT NAME,
COUNT
FROM
(
SELECT NAME,
COUNT(NAME) COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL -> 누락 체크
GROUP BY 1
) A
WHERE COUNT>=2
ORDER BY 1 -> 누락 체크
SELECT NAME,
COUNT(NAME)
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(NAME) >= 2 -> 그룹화 된 테이블에 특정 조건을 필터링하는 기능
ORDER BY NAME
*GROUP BY HAVING : 그룹화 된 테이블을 조건으로 데이터 행을 필터링 해주는 역할을 한다.
*WHERE : SELECT 되지 않은 컬럼이라 하더라도 FROM 에 속해있으면 출력된다. 는 차이(?)
SELECT NAME,
COUNT(NAME) COUNT
FROM ANIMAL_INS
WHERE COUNT(NAME) >= 2
*WHERE 조건을 FROM 테이블에서 찾을 수가 없으니까 틀린거다. 알겠지.
- 실습 5. 상위 N개 레코드 : 서브쿼리나 LIMIT 이용, 배운 내용으로 랭크 가능!
SELECT NAME
FROM ANIMAL_INS
WHERE MIN(DATETIME) -> 틀림
SELECT NAME
FROM ANIMAL_INS
WHERE DATETIME =
(
SELECT MIN(DATETIME)
FROM ANIMAL_INS
) -> 서브쿼리
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1 -> 리미트
SELECT NAME
FROM
(
SELECT NAME,
RANK() OVER(ORDER BY DATETIME) RK
FROM ANIMAL_INS
) A
WHERE RK=1 -> 랭크
*서브쿼리만 출력하면
SELECT MIN(DATETIME) FROM ANIMAL_INS
따라서 코드를 해석하면
SELECT NAME FROM ANIMAL_INS : 이름만 찾아주는데 조건이 있다.
WHERE DATETIME = (서브쿼리) : DATETIME 의 값이 2013-10-14 이하인 것만 찾아줘.
좋았던 점
아쉬운 점
- 내 진도는 아직 거기가 아닌데ㅠㅠ 벌써 프로젝트를 하려니 컴퓨터의 힘을 빌려도 힘들다.
잊지말 점
- LIMIT, HAVING 함수를 이용하니까 너무나 편하구나.
시도할 점
- 데이터 분석 결과 발표 및 시각화 회의
'회고 > TIL(매일)' 카테고리의 다른 글
TIL 16일차 : mini project 3rd., 코드 4일차 (0) | 2023.12.21 |
---|---|
TIL 15일차 : mini project 2rd., 코드 3일차 (1) | 2023.12.20 |
TIL 13일차 : 코드카타, 미니 프로젝트 시작 (0) | 2023.12.18 |
TIL 12일차 : 실전 데이터 분석 (3주차~5주차) (0) | 2023.12.15 |
TIL 11일차 : Colab, python, pandas, matplotlib, numpy, seaborn (0) | 2023.12.14 |