학부때는 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 |