본문 바로가기

Language/SQL

데분에선 SQL이 중요하다..

학부때는 R, 졸업하고는 Python을 배웠다.

그런데 이젠 SQL이 중요하다니..

물론 간단한 코딩이야 할 수 있는데, 복잡한 쿼리문을 봤을때 그런건 어떻게 쓰는건지 감탄스러웠다.

연습이 필요하다고 생각했다.

문제 출처: https://school.programmers.co.kr/learn/courses/30/parts/17042

 

헷갈렸던 것

DATE_FORMAT(COLUMN_NAME, "%y-%m-%d" 날짜 형식 YYYY-MM-DD
MONTH(COLUMN_NAME) 날짜에서 월만 출력
ROUND(계산결과, 2) 소수점 세번째 자리에서 반올림해서 두번째 자리까지 출력
JOIN TALBE_NAME A ON A.COL=B.COL 테이블끼리 JOIN할때 같은 외부키 기준으로 JOIN
COLUMN_NAME LIKE "S%" "S"로 시작하는 데이터만 출력

3월에 태어난 여성 회원 목록 출력하기

조건 1. 3월이 생일

조건 2. 성별이 여성

조건 3. 전화번호가 NULL인 경우 제외

조건 4. 회원ID 기준 오름차순

조건 5. 날짜 형식 YYYY-MM-DD

SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE MONTH(DATE_OF_BIRTH)=3
AND TLNO IS NOT NULL
AND GENDER ='W'
ORDER BY MEMBER_ID;

결과

서울에 위치한 식당 목록 출력하기

조건 1. 두 테이블 JOIN필요

조건 2. 서울에 위치한 식당

조건 3. 리뷰 평균 점수 구하고, 소수점 세 번째 자리에서 반올림

조건 4. 평균 점수 기준 내림차순

조건 5. 평균 점수가 같다면 즐겨찾기 기순 내림차순 

SELECT A.REST_ID, B.REST_NAME, B.FOOD_TYPE, B.FAVORITES, B.ADDRESS, ROUND(AVG(A.REVIEW_SCORE),2) AS SCORE
FROM REST_REVIEW A
JOIN REST_INFO B ON A.REST_ID = B.REST_ID
WHERE B.ADDRESS LIKE '서울%'
GROUP BY A.REST_ID
# HAVING B.ADDRESS LIKE '서울%'
ORDER BY SCORE DESC, B.FAVORITES DESC;

결과

과일로 만든 아이스크림 고르기

조건 1. 두 테이블 JOIN필요

조건 2. 상반기 아이스크림 주문량>3,000

조건 3. 아이스크림 주 성분이 과일

조건 4. 총주문량이 큰 순서대로 조회

SELECT A.FLAVOR
FROM FIRST_HALF A
JOIN ICECREAM_INFO B ON A.FLAVOR = B.FLAVOR
WHERE A.TOTAL_ORDER > 3000
AND B.INGREDIENT_TYPE LIKE "FRUIT%"
ORDER BY A.TOTAL_ORDER DESC;

결과

'Language > SQL' 카테고리의 다른 글

Case 문을 통해 조건에 맞는 경우 추출하기  (0) 2023.04.20
배운게 나오긴 하는구나!  (0) 2023.04.14
Round  (0) 2023.03.30
안 쓰면 까먹는다.  (0) 2023.03.29
MySQL 에서는 ISNULL 대신 IFNULL  (0) 2023.03.24