30일까지는 팀과제에 더 집중하기로 했지만
그럼에도 틈틈히 SQL 코드카타 복습을 빼먹지 말자!
30번 문제 - 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/151137
풀이 : car_rental_company_car 테이블에서 '통풍시트','열선시트','가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력하되, 자동차 수에 대한 컬럼명은 CARS로 지정하고, 그 결과는 자동차 종류 기준 오름차순을 해야 되기 때문에 COUNT(*), GROUP BY,ORDER BY, where과 like를 사용했다.
31번 문제 - 오랜 기간 보호한 동물(1)
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/59044
풀이 : 동물 보호소에서 아직 입양을 못 간 동물 중 가장 오래 보호소에 있던 동물 3마리의 이름과 보호 시작일을 조회하되 그 결과는 보호 시작일 순으로 조회해야 하기 때문에 limit과 where, order by, join을 사용했다.
32번 문제 - 카테고리 별 도서 판매량 집계하기
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/144855
풀이 : 2022년 1월의 카테고리 별 도서 판매량 합산하고, 카테고리와 총 판매량 리스트를 출력하되 그 결과는 카테고리명을 기준으로 오름차순을 정렬해야 하기 때문에 join, where, date_format, group by, order by를 사용했다.
33번 문제 - 상품 별 오프라인 매출 구하기
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/131533
풀이 :
34번 문제 - 있었는데요 없었습니다
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/59043
풀이 : 동물보호소의 동물 중 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하되, 그 결과를 보호 시작일이 빠른 순으로 조회해야 하기 때문에 join과 where, ordere by를 사용했다.
35번 문제 - 오랜 기간 보호한 동물(2)
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/59411
풀이 : 입양을 간 동물 중 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회할 건데, 이때 결과는 보호기간이 긴 순으로 조회해야 하기 때문에 join과 where, order by를 사용했다.
36번 문제 - 보호소에서 중성화한 동물
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/59045
풀이 : 동물 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 이름을 조회하는 아이디 순으로 조회해야 하기 때문에 where, join, like, order by를 사용했다.
🚨한 가지 주의할 점은 연산가자 여러 개일 때, 괄호를 사용하면 우선순위를 명확히 지정해 원하는 결과를 얻을 수 있다.
-> 특히 and/or, 산술 연산자 + 논리 연산자, 비교 연산자+논리 연산자가 함께 섞이면 꼭 괄호로 구분하는 게 좋다!
*논리 연산자(AND, OR) 섞일 때는 무조건 괄호 쓰는 습관 들이기
37번 문제 - 조건에 맞는 도서와 저자 리스트 출력하기
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/144854
풀이 : '경제' 카테고리에 속하는 도서들의 도서 ID, 저자명, 출판일 리스트를 출력하되, 그 결과는 출판일 기준으로 오름차순 정렬해야 하기 때문에 ORDER BY, where, date_format을 사용했다.
38번 문제 - 조건 별로 분류하여 조건 상태 추가하기
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/131113
풀이 : FOOD_ORDER 테이블에서 2022년 5월 1일 기준으로 주문 ID, 출고일자, 출고여부를 조회하되, 출고여부는 2022년 5월 1일까지 출고완료로 이후 날짜는 출고 대기로 미정이면 출고미정으로 출력해주고, 결과는 주문 ID를 기준으로 오름차순 정렬해야 하기 때문에 CASE WHEN, DATE_FORMAT, ORDER BY를 시용했다.
39번 문제 - 성분으로 구분한 아이스크림 총 주문량
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/133026
풀이 : 상반기 동안 각 아이스크림 성분 타입과 성분 타입에 대한 아이스크림의 총주문량을 총주문량이 작은 순서대로 조회하되, 총주문량 나타내는 컬럼명은 TOTAL_ORDER로 지정해야 하기 때문에 join, sum, group by, order by를 사용했다.
40번 문제 - 루시와 엘라 찾기
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/59046
풀이 : 동물 보호소에 들어온 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별 및 중성화 여부를 조회해야 하기 때문에 where, in을 사용했다.
오늘도 sql 코드카타 10문제 + 파이썬 라이브세션 + 나머지 시간은 팀 과제와 회의로 시간이 다 지나갔다.
이번 주에 공부했던 내용은 WIL을 통해 담아보도록 하겠다!