참고: https://school.programmers.co.kr/learn/courses/30/lessons/59411 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 다음과 같이 주어진 예시를 확인해보면 OUTS 테이블에서 INS 테이블을 뺀 시간의 길이가 가장 긴 즉, 입양을 보내기까지의 보호 기간이 가장 긴 동물 두 마리의 아이디와 이름을 조회하면 된다. SELECT ANIMAL_ID, NAME FROM ( SELECT B.ANIMAL_ID, B.NAME, DATEDIFF(B.DATETIME, A.DATETIME) as DATE FROM ANIMAL_INS A JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID ORDER BY DATE DESC LIMIT 2) as N..
참고: https://school.programmers.co.kr/learn/courses/30/lessons/151138 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 다음처럼 START_DATE와 END_DATE는 년-월-일만 출력해야하고, END - START의 날짜 뺀 값이 30일 이상이면 장기 대여, 아니면 단기 대여라는 RENT_TYPE의 새로운 컬럼에 데이터를 추가해야한다. 또한, 대여 시작일이 9월인 경우에만 출력하고, ID 순으로 내림차순 정렬해야한다. SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE, '%Y-%m-%d') as START_DATE, DATE_FORMAT(END_DATE, '%Y-%m-%d') as END_DATE, IF(DATEDIF..
참고: https://school.programmers.co.kr/learn/courses/30/lessons/59413 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 다음 예제와 같이 23시까지 없는 시간과 카운트도 출력돼야 한다. 근데, 해당 테이블에는 7부터 시간을 출력할 수 있는데 나머지 0부터 23 중 없는 시간은 어떻게 출력해야 할까? https://stackoverflow.com/questions/54643238/what-is-mysql-query-to-print-1-to-10
참고: https://school.programmers.co.kr/learn/courses/30/lessons/132202 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 예제를 보게 되면 진료과코드, 5월예약건수 라는 컬럼명으로 출력해야한다. SELECT MCDP_CD as "진료과 코드", COUNT(MCDP_CD) as '5월예약건수' FROM APPOINTMENT WHERE APNT_YMD LIKE '%-05-%' GROUP BY MCDP_CD ORDER BY COUNT(APNT_NO) ASC, MCDP_CD ASC 처음에 GROUP BY에 MCDP_CD, APNT_NO를 기준으로 해서 그룹을 묶었는데, 이렇게 하면 진료과 코드와 예약 날짜를 모두 맵핑하여 FM,FM,GS,GS 이렇게 따로 중복돼서 나..
참고: https://school.programmers.co.kr/learn/courses/30/lessons/151137 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 조건으로는 CAR_TYPE과 차의 개수를 출력하면서 동시에 옵션에 통풍시트, 열선시트, 가죽시트가 포함되어 있어야 한다. SELECT CAR_TYPE, COUNT(CAR_TYPE) as CARS FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS REGEXP '통풍시트|열선시트|가죽시트' GROUP BY CAR_TYPE ORDER BY CAR_TYPE ASC CAR_TYPE이 중복되는 것을 묶는 과정에서 REGEXP는 파이프라인으로 여러개의 LIKE 연산을 수행할 수 있는데, 이렇게 함과 동시에 오름차순 정렬을 수행하..
참고: https://school.programmers.co.kr/learn/courses/30/lessons/59041 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 예시처럼 중복된 사람의 이름과 중복된 횟수를 출력하면 된다. SELECT NAME, COUNT(NAME) FROM ANIMAL_INS GROUP BY NAME HAVING COUNT(NAME) >= 2 ORDER BY NAME GROUP BY로 묶으면 중복을 제거한 것을 자동으로 카운팅하는데, 이때 조건으로 HAVING절에 2 이상을 삽입한 후 이름 순으로 정렬한다. 화이팅 💪