코딩테스트/SQL 6

[JOIN] 그룹별 조건에 맞는 식당 목록 출력하기 (☆☆)

✅ 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/131124✅ COUNT의 MAX값을 구하는 방법은 서브쿼리로 COUNT DESC 정렬 후 LIMIT 1한 ID가 같은지를 WHERE절 조건으로 작성하면 된다.SELECT M.MEMBER_NAME, R.REVIEW_TEXT, DATE_FORMAT(R.REVIEW_DATE,"%Y-%m-%d") AS REVIEW_DATEFROM MEMBER_PROFILE AS MJOIN REST_REVIEW AS R ON M.MEMBER_ID = R.MEMBER_IDWHERE M.MEMBER_ID = ( SELECT MEMBER_ID FROM REST_REVIEW GROUP BY MEMBER_..

코딩테스트/SQL 2024.09.11

[JOIN] 주문량이 많은 아이스크림들 조회하기 (☆☆)

✅ JOIN 조건을 습관적으로 외래키로 했다.문제 조건이 FLAVOR에서 두 테이블을 합산해야하므로 JOIN 조건이 FLAVOR에 있어야한다.(상반기와 7월의 주문량을 합산하여 가장 인기 있는  FLAVOR을 찾는 것이 목적입니다.)✅ 7월 총 주문량이라고만 보고 SUM()을 안썼다. 7월에는 아이스크림 주문량이 많아 같은 아이스크림에 대하여 서로 다른 두 공장에서 아이스크림 가게로 출하를 진행하는 경우가 있습니다. 이 경우 같은 맛의 아이스크림이라도 다른 출하 번호를 갖게 됩니다.- SHIPMENT_ID마다의 7월 총 주문량이 아니라 FLAVOR마다의 7월 총주문량이므로GROUP BY F.FLAVOR, SUM(J.TOTAL_ORDER) 구문이 필요하다SELECT F.FLAVORFROM FIRST_HAL..

코딩테스트/SQL 2024.09.10

[JOIN] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (☆☆)

✅ 2번 JOIN 하는 대신 서브쿼리로 날짜조건으로 거른 다음 DISTICT사용함 (그래서 GROUPBY CAR_ID 사용 안함-중복행 문제)서브쿼리 이점: 중간 결과 집합 최소화JOIN을 사용하면 중간 결과로 큰 테이블이 생성될 수 있지만, 서브쿼리는 필요한 데이터만 필터링하여 반환합니다.이는 메모리 사용을 줄이고 전체적인 쿼리 실행 속도를 향상시킬 수 있습니다.✅ DISTICT써서 HAVING절에 GROUPBY쓰지 않아도 됨 (일부 SQL허용 -MySQL)✅ 11월 한 달 동안 대여 가능한 차량 조건 구하기"11월 한 달 동안 대여 가능한 차량"입니다. 이를 논리적으로 표현하면 "11월 동안 대여되지 않은 차량"이 됩니다.(END_DATE '2022-11-30')이제 드모르간 법칙을 사용하면  NO..

코딩테스트/SQL 2024.09.10