프로그래머스 풀면서 SQL문 정리

박경현·2023년 2월 16일
0

네이버 AI부트캠프 2차 떨어졌다.
스스로에게 무엇이 부족했는지 알 수 있던 시간들이었다.

하지만 여기서 그냥 포기하는게 아니라
SW마에스트로를 바로 지원했기 때문에 SQL 공부한 내용을 적어보려고 한다!!

공부에 대한 열정을 멈추지 말자!

SQL 정리!

GROUP BY

처음에는 그룹 별로 모은다가 무슨 의미인지 몰랐었다.

결국 그룹이라는 것은 같은 종류의 데이터를 모은다라고 정의 하면 된다!!

GROUP BY 아래에 조건을 적고 싶으면
HAVING으로 작성! 이건 그룹에서 조건을 적용할때!!

WHERE는 사용이 안된다! 전체에서 조건 적용할때!!

JOIN ON

JOIN은 ON과 항상 함께 쓰기! → 이건 외래키 기본키를 연결!

SELECT *
FROM ANIMAL_INS AS I
JOIN ANIMAL_OUTS AS O
ON I.NAME = O.NAME

이러면 NAME을 기준으로 새로운 테이블이 탄생!

기본 TIP

소수 3번째 자리 반올림, 이름은 SCORE

SELECT ROUND(AVG(B.REVIEW_SCORE),2) AS SCORE

만약 NULL일때 이름을 no name으로 교체하는건

SELECT IF (NAME IS NULL, "No name", NAME) AS NAME

나이정보가 Null인지 확인하는건

WHERE AGE IS NULL

COUNT로 몇명인지 개수 세기!

SELECT COUNT(*) AS USERS

가격이 제일 비싼 식품의 정보 출력

WHERE PRICE IN (SELECT MAX(PRICE) FROM FOOD_PRODUCT)

가장 예전 날짜 구하는 법

WHERE DATETIME IN (SELECT MIN(DATETIME) FROM ANIMAL_INS);

TRUNCATE는 버리기

TRUNCATE(12.2345,1)은 12.2다!

데이터 중 왼쪽 2개 가져오기

SELECT LEFT(PRODUCT_CODE,2) AS CATEGORY, COUNT(전체) AS PRODUCTS

DISTINCT는 중복 데이터를 제거!

중복 데이터 제거하고자 하는 열 NAME이라 적어줌!
이건 SELECT (DISTINCT col1, col2,..) 이렇게 뒤에 칼럼들도 안에 저장해야함!

SELECT COUNT(DISTINCT NAME) AS count
FROM ANIMAL_INS
WHERE NAME IS NOT NULL

CASE를 사용해 여러 경우일때를 정의 하자!

SELECT (

CASE

WHEN PRICE < 10000 THEN 0

ELSE TRUNCATE(PRICE,-4) — 이거는 21234 를 20000으로 표현!

END )  AS PRICE_GROUP, COUNT(PRODUCT_ID)

FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP;
profile
SW로 문제를 해결하려는 열정만 있는 대학생

0개의 댓글