본문 바로가기

SQL

(28)
SQL 프로그래머스_6일차_4 IN, GROUP BY 최대 수 찾기 즐겨찾기가 가장 많은 식당 정보 출력하기 문제 REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요. 테이블 소개 시도 코드 1. 셀프 조인을 통해 즐겨찾기 수가 가장 많은 식당만 추출 ,단 조회는 되지만 오답이라고 뜬다 SELECT A.FOOD_TYPE,A.REST_ID,A.REST_NAME,B.FAVORITES FROM REST_INFO A JOIN (SELECT FOOD_TYPE,REST_ID,REST_NAME,MAX(FAVORITES) AS FAVORITES FROM REST_INFO GROUP BY FOOD_TYPE) B ON A.REST_ID=..
SQL 프로그래머스_6일차_1 JOIN ,GROUP BY ,RANK(), 이중 서브쿼리 그룹별 조건에 맞는 식당 목록 출력하기 문제 MEMBER_PROFILE와 REST_REVIEW 테이블에서 리뷰를 가장 많이 작성한 회원의 리뷰들을 조회하는 SQL문을 작성해주세요. 회원 이름, 리뷰 텍스트, 리뷰 작성일이 출력되도록 작성해주시고, 결과는 리뷰 작성일을 기준으로 오름차순, 리뷰 작성일이 같다면 리뷰 텍스트를 기준으로 오름차순 정렬해주세요. 테이블 소개 이 문제 좀 어렵다. 머리를 잘 굴려야 한다. 이중 서브쿼리이므로 마지막 서브쿼리부터 어떻게 작성할지 고민해야한다. 정답코드 SELECT MEMBER_NAME,REVIEW_TEXT,DATE_FORMAT(REVIEW_DATE,'%Y-%m-%d') as REVIEW_DATE FROM REST_REVIEW R -- 4. 리뷰행마다 순위를 추가하기 ..
SQL 프로그래머스 5일차_2 GROUP BY , DISTINCT , NOT 컬럼 IS NULL 년, 월, 성별 별 상품 구매 회원 수 구하기 문제 USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요. 유저 테이블 판매목록 테이블 정답코드 유의점 조인시 유저아이디는 테이블당 하나이므로 바로 아이디 수를 세면 2배가 된다. 그래서 DISTINCT를 해줘야 한다, -- DISTINCT 유저 테이블과 세일즈 테이블에서 유저ID는 두개이므로 회원수를 알기 위해서는 중복값을 뺴야한다, SELECT YEAR(SALES_DATE) AS YEAR, MONTH(SALES_DATE) AS MONTH ,GENDER , COUN..
SQL 프로그래머스 5일차_1 UNION ALL FULL JOIN같지만 두개의 테이블을 빈칸까지 모두 가지올 때는 UNION ALL을 쓰자 중복값까지 모두 조회 된다. 오프라인/온라인 판매 데이터 통합하기 문제 ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력하는 SQL문을 작성해주세요. OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL 로 표시해주세요. 결과는 판매일을 기준으로 오름차순 정렬해주시고 판매일이 같다면 상품 ID를 기준으로 오름차순, 상품ID까지 같다면 유저 ID를 기준으로 오름차순 정렬해주세요. -- 코드를 입력하세요 SELECT * FROM (SELECT DATE_FORMAT(SALES_DATE..
SQL JOIN 할때 서브쿼리로 조인하기 Column nameTypeNullableDescription BOOK_ID INTEGER FALSE 도서 ID CATEGORY VARCHAR(N) FALSE 카테고리 (경제, 인문, 소설, 생활, 기술) AUTHOR_ID INTEGER FALSE 저자 ID PRICE INTEGER FALSE 판매가 (원) PUBLISHED_DATE DATE FALSE 출판일 AUTHOR 테이블은 도서의 저자의 정보를 담은 테이블로 아래와 같은 구조로 되어있습니다. Column nameTypeNullableDescription AUTHOR_ID INTEGER FALSE 저자 ID AUTHOR_NAME VARCHAR(N) FALSE 저자명 - 저자가 홍길동인 책만 추출 SELECT * FROM BOOK B JOIN (SE..
SQL 프로그래머스_4일차_2 GROUP BY , FIELD, COUNT 고양이와 개는 몇 마리 있을까 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개보다 먼저 조회해주세요. SELECT ANIMAL_TYPE,COUNT(*) AS count -- 그룹바이한 후에 COUNT하면 자동으로 그룹별로 COUNT한다. FROM ANIMAL_INS A GROUP BY ANIMAL_TYPE HAVING ANIMAL_TYPE IN ('Cat','Dog') ORDER BY FIELD(ANIMAL_TYPE, 'Cat','Dog') -- -- 동물 종류가 CAT과 DOG 뿐이기 때문에 ORDER BY 1로 해도 되지만 -- 만약 특정값을 위로 차순위로 하고 싶다면 FIELD(컬럼 , 1순위, 2순위 ,3순위 ) -- FIELD 값..
SQL 프로그래머스 4일차 _1 GROUP BY ,DATE 카테고리 별 도서 판매량 집계하기 2022년 1월의 카테고리 별 도서 판매량을 합산하고, 카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 카테고리명을 기준으로 오름차순 정렬해주세요. DATE 정확한 년월일 날짜를 조회할때 사용 DATE_FORMAT 년 , 월 ,일 따로 지정할 수 있다. 예를 들어>1.22년 1월 조회2. 22일 날 조회3. 3월 조회 SELECT CATEGORY, SUM(SALES) as TOTAL_SALES FROM BOOK B JOIN BOOK_SALES BS ON B.BOOK_ID = BS.BOOK_ID AND DATE_FORMAT(BS.SALES_DATE,'%Y-%m') = '2022-01' GROUP BY B.CA..
SQL 프로그래머스 3일차_ GROUP BY,DATE, JOIN 3번 저자 별 카테고리 별 매출액 집계하기 2022년 1월의 도서 판매 데이터를 기준으로 저자 별, 카테고리 별 매출액(TOTAL_SALES = 판매량 * 판매가) 을 구하여, 저자 ID(AUTHOR_ID), 저자명(AUTHOR_NAME), 카테고리(CATEGORY), 매출액(SALES) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 저자 ID를 오름차순으로, 저자 ID가 같다면 카테고리를 내림차순 정렬해주세요. BOOK_IDCATEGORYAUTHOR_IDPRICEPUBLISHED_DATE 1 인문 1 10000 2020-01-01 2 경제 1 9000 2021-02-05 3 경제 2 9000 2021-03-11 AUTHOR_IDAUTHOR_NAME 1 홍길동 2 김영호 BOOK_IDSALES_DATESA..