SQL 44

[프로그래머스] 그룹별 조건에 맞는 식당 목록 출력하기

--REST_REVIEW 테이블에서 MEMBER_ID 를 기준으로 그룹핑 한 다음 -- 개수를 기준으로 정렬한 다음 LIMIT으로 1개만 조회하도록 하기 SELECT T1.MEMBER_NAME, T2.REVIEW_TEXT, DATE_FORMAT(T2.REVIEW_DATE, '%Y-%m-%d') AS REVIEW_DATE FROM MEMBER_PROFILE T1 JOIN REST_REVIEW T2 ON T1.MEMBER_ID = T2.MEMBER_ID WHERE T1.MEMBER_ID = (SELECT MEMBER_ID FROM REST_REVIEW GROUP BY MEMBER_ID ORDER BY COUNT(MEMBER_ID) DESC LIMIT 1 ) ORDER BY 3, 2

SQL 2023.07.16

[프로그래머스] 조건별로 분류하여 주문상태 출력하기

-- SELECT 절에 삼항연산을 사용해 출력문 제어 -- 그리고 DATE 타입의 경우 날짜 비교시 -- 굳이 문자로 나타낸 날짜에 DATE_FORMAT를 해주지 않아도 비교가 가능 SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS OUT_DATE, IF (OUT_DATE IS NULL,'출고미정', IF (OUT_DATE > '2022-05-01', '출고대기', '출고완료')) AS 출고여부 FROM FOOD_ORDER ORDER BY 1 -- CASE 사용으로 출력문 제어 SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS OUT_DATE, CASE WHEN OUT_..

SQL 2023.07.15

[프로그래머스] 취소되지 않은 진료 예약 조회하기

-- 의사와 진료 테이블의 컬럼을 보고 엮어줄게 없어서 헤매다가 -- 다른 이름의 컬럼으로 같은 값을 확인해 해결 SELECT T3.APNT_NO, T1.PT_NAME, T1.PT_NO, T3.MCDP_CD, T2.DR_NAME, T3.APNT_YMD FROM PATIENT T1, DOCTOR T2, APPOINTMENT T3 WHERE T1.PT_NO = T3.PT_NO AND T2.DR_ID = T3.MDDR_ID AND T3.APNT_CNCL_YN = 'N' AND T3.MCDP_CD = 'CS' AND T3.APNT_YMD LIKE '2022-04-13%' ORDER BY T3.APNT_YMD

SQL 2023.07.15

[프로그래머스] 자동차 평균 대여 기간 구하기

-- 뭔가 생각이 많은 문제여따.. -- 우선 DATEDIFF를 하고 2개의 인자만 사용하게 되면 기본적으로 DAY를 비교하는 것. -- 이후 DATEDIFF를 하고 +1을 해주는 이유는 15일과 10을 빼면 5가 나오는데 -- 실제로 10일부터 15일까지 사용했다라고 가정하면 -- 10, 11, 12, 13, 14, 15로 총 6일을 사용하는 것이기에 +1을 더 해주고 AVG()사용 SELECT CAR_ID, ROUND(AVG(DATEDIFF(END_DATE, START_DATE)+1), 1) AS AVERAGE_DURATION FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY GROUP BY CAR_ID HAVING AVERAGE_DURATION >= 7 ORDER BY 2 DES..

SQL 2023.07.14

[프로그래머스] 대여 기록이 존재하는 자동차 리스트 구하기

-- 방법 1 -- 카티션과 WHERE SELECT DISTINCT T1.CAR_ID FROM CAR_RENTAL_COMPANY_CAR T1, CAR_RENTAL_COMPANY_RENTAL_HISTORY T2 WHERE T1.CAR_ID = T2.CAR_ID AND T1.CAR_TYPE = '세단' AND T2.START_DATE LIKE '%-10-%' ORDER BY T1.CAR_ID DESC -- 방법2 -- JOIN과 ON을 사용 SELECT DISTINCT T1.CAR_ID FROM CAR_RENTAL_COMPANY_CAR T1 JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY T2 ON T1.CAR_ID = T2.CAR_ID WHERE T1.CAR_TYPE = '세단' AN..

SQL 2023.07.14