개발/SQL 42

프로그래머스SQL_저자 별 카테고리 별 매출액 집계하기

■ 사용 문법    GROUP BY, JOIN, 집계함수 SUM    ■ 사용 방법    1. 우선 세 개의 테이블을 조인한다.2. 조건에 맞게 필터링 해준다.(2022년 1월)3. 문제에 보면 저자별, 카테고리 별 매출액이라 했으므로 AUTHOR_ID, CATEGORY 로 GROUP BY 해준다. 4. 집계함수 SUM으로 BOOK의 PRICE와 BOOK_SALES의 SALES를 곱해준 다음 더해준다. (SUM(BOOK.PRICE * BOOK_SALES.SALES)5. 정렬 후 마무리  ■ 코드    SELECT A.AUTHOR_ID, A.AUTHOR_NAME,B.CATEGORY , SUM(B.PRICE * S.SALES) AS TOTAL_SALESFROM BOOK AS BJOIN AUTHOR AS A..

개발/SQL 2024.06.13

프로그래머스SQL_식품분류별 가장 비싼 식품의 정보 조회하기

■ 사용 문법    GROUP BY, JOIN( GROUP BY 절은 그룹화 기준 컬럼(CATEGORY)과 집계 함수의 결과(MAX(PRICE))만 반환한다.)   ■ 사용 방법    1. GROUP BY 절은 그룹화 기준 컬럼과 집계 함수의 결과만 반환하다. 따라서, 아래와 같은 코드 실행 시 PRODUCT_NAME이 매칭되지 않은 값으로 나온다. SELECT CATEGORY, MAX(PRICE) as MAX_PRICE, PRODUCT_NAMEFROM FOOD_PRODUCT WHERE CATEGORY = "과자" OR CATEGORY = "국" OR CATEGORY = "김치" OR CATEGORY = "식용유"GROUP BY CATEGORYORDER BY MAX_PRICE DESC2. 이를 해결해주기..

개발/SQL 2024.06.07

프로그래머스SQL_자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

■ 사용 문법 GROUP BY ■ 사용 방법 1. start_date가 2016-10-16보다 작거나 같고(AND) end_date이 2016-10-16보다 같거나 큰 것을 필터링 해준다. 2. CAR_ID로 GROUP BY 한다. 3. 위 쿼리를 서브쿼리로 하여 SELECT 문에 넣어준다. 이 때 CASE 문을 사용하여 위 쿼리에 해당하는 것들은 '대여중' 그 이외의 것들은 '대여 가능'으로 하여 AVAILABLITY 칼럼을 만든다. 4. CAR_ID로 GROUP BY 한다.  ■ 코드 -- 코드를 입력하세요SELECT CAR_ID,( CASE WHEN CAR_ID IN (SELECT CAR_IDFROM CAR_RENTAL_COMPANY_RENTAL_HISTORYWHERE START_DATE = DAT..

개발/SQL 2024.05.16

프로그래머스SQL_카테고리 별 도서 판매량 집계하기

■ 사용 문법 JOIN, GROUP BY, SUM ■ 사용 방법1. BOOK_ID를 기준으로 BOOK_SALES 과 BOOK을 Join 해준다.2. 2022년 1월로 필터로 걸러준다. 3. CATERGORY를 GROUP BY로 나누고, SALES를 SUM 해준다.  ■ 코드-- 코드를 입력하세요SELECT B.CATEGORY, SUM(SALES)FROM BOOK_SALES as AJOIN BOOK as BON A.BOOK_ID = B.BOOK_IDWHERE A.SALES_DATE BETWEEN DATE('2022-01-01') AND DATE('2022-01-31')GROUP BY B.CATEGORYORDER BY B.CATEGORY

개발/SQL 2024.05.13

프로그래머스SQL_즐겨찾기가 가장 많은 식당 정보 출력하기

■ 사용 문법 MAX, GROUP BY, JOIN ■ 사용 방법1. GROUP BY를 이용해 FOOD_TYPE 별 최대 FAVOTRITE 수를 구한다. 이 때, MAX를 사용하는데, 나머지 REST_ID와, REST_NAME의 값을 제대로 가져올 수 없다.2. 최대값과 FOOD_TYPE으로 REST_INFO와 조인해준다.  ■ 코드SELECT A.FOOD_TYPE, A.REST_ID, A.REST_NAME, A.FAVORITESFROM REST_INFO AS AJOIN ( SELECT FOOD_TYPE, MAX(FAVORITES) AS FAVORITES FROM REST_INFO GROUP BY FOOD_TYPE ) AS BON A.FAVORITES = B.FAVORITES AND ..

개발/SQL 2024.05.10

프로그래머스SQL_대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

■ 사용 문법 GROUP BY, HAVING ■ 사용 방법1. 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차 ID 추출2. 추출한 자동차 ID로 2022년 8월부터 2022년 10월까지 월별 대여 횟수 계산 ■ 코드SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(CAR_ID) AS RECORDSFROM CAR_RENTAL_COMPANY_RENTAL_HISTORY AS AWHERE START_DATE >= DATE('2022-08-01') AND START_DATE = DATE('2022-08-01') AND START_DATE = 5 ORDER BY CAR_ID)GROUP BY CAR_ID, MONTH(START_DATE)ORD..

개발/SQL 2024.05.09