목록코드카타/SQL (78)
susinlee 님의 블로그
[문제] USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 중고 거래 게시물을 3건 이상 등록한 사용자의 사용자 ID, 닉네임, 전체주소, 전화번호를 조회하는 SQL문을 작성해주세요. 이때, 전체 주소는 시, 도로명 주소, 상세 주소가 함께 출력되도록 해주시고, 전화번호의 경우 xxx-xxxx-xxxx 같은 형태로 하이픈 문자열(-)을 삽입하여 출력해주세요. 결과는 회원 ID를 기준으로 내림차순 정렬해주세요 [단계별 풀이] 1. BOARD 테이블에서 작성자ID로 GROUP BY 한 후 BOARD_ID를 COUNT 한 수치가 3이상인 작성자 ID만 출력2. 해당 쿼리를 서브쿼리로 보낸 뒤 USER_ID가 그 안에 속한 것들만 필터링3. 사용자ID와 닉네임, 전체주소(CONCAT_WS사..
[문제] 가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요. [단계별 풀이] 1. 동시에 들어왔을 수도 있으니 서브쿼리를 이용2. DATETIME이 DATETIME의 최대값과 같은 행만 필터링3. DATETIME을 시간으로 지정 후 조회[정답]SELECT DATETIME AS 시간FROM ANIMAL_INSWHERE DATETIME = (SELECT MAX(DATETIME) FROM ANIMAL_INS)
[문제] ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요. [단계별 풀이] 1. 회원ID와 상품ID를 GROUP BY2. 판매ID를 COUNT한 수치가 2 이상인 행들만 필터링3. 회원ID와 상품ID를 조회4. 회원ID를 오름차순, 상품ID를 내림차순 정[정답]SELECT USER_ID, PRODUCT_IDFROM ONLINE_SALEGROUP BY USER_ID, PRODUCT_IDHAVING COUNT(ONLINE_SALE_ID) >= 2ORDER BY USER_I..
[문제] 상반기 아이스크림 총주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총주문량이 큰 순서대로 조회하는 SQL 문을 작성해주세요. [단계별 풀이] 1. 두 테이블을 FLAVOR로 JOIN 하고2. 총주문량이 3000보다 높으면서 주 성분이 과일인 행만 필터링3. FLAVOR를 조회4. 총주문량을 내림차순 정렬[정답]SELECT F.FLAVORFROM FIRST_HALF FJOIN ICECREAM_INFO ION F.FLAVOR = I.FLAVORWHERE F.TOTAL_ORDER > 3000 AND I.INGREDIENT_TYPE = 'fruit_based'ORDER BY F.TOTAL_ORDER DESC
[문제] 천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요. [단계별 풀이] 1. 두 테이블을 ANIMAL_ID로 LEFT JOIN (OUTS 테이블이 왼쪽)2. INS 테이블의 ANIMAL_ID가 NULL인 행들만 필터링3. OUTS 테이블의 ID와 이름을 조회4. ID 순으로 정렬[정답]SELECT O.ANIMAL_ID, O.NAMEFROM ANIMAL_OUTS OLEFT JOIN ANIMAL_INS ION I.ANIMAL_ID = O.ANIMAL_IDWHERE I.ANIMAL_ID IS NULLORDER BY ANIMAL_ID
[문제] FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요. [단계별 풀이] 1. 두 테이블을 PRODUCT_ID로 JOIN2. 생산일자가 22년 5월인 행들만 필터링3. 식품ID나 식품이름으로 GROUP BY4. 총매출(PRICE * AMOUNT)를 SUM한 뒤 TOTAL_SALES로 지정한다5. 식품ID, 식품이름, 총매출을 조회한다6. 총매출을 내림차순, 식품ID를 오름차순 정렬한다[정답]SELECT P.PRODUCT_ID, PRODUCT_NAME, SUM(P..
[문제] FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요. [단계별 풀이] 1. 식품분류가 과자, 국, 김치, 식용유인 행들을 필터링한다2. 식품분류, 가격, 이름을 조회한 후 RANK 윈도우 함수로 식품분류별 가격의 순위를 구해준다3. 해당 테이블을 인라인뷰로 하여 다시 순위가 1인 행들만 필터링해준다4. 식품분류, 가격, 이름을 조회한다5. 가격을 내림차순으로 정렬한다[정답]SELECT CATEGORY, PRICE AS MAX_PRICE, PRODUCT_NAMEFROM (..
[문제] REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요 [단계별 풀이] 1. 음식종류별 식당별 GROUP BY 후 즐겨찾기 수를 SUM 해준다2. RANK 윈도우 함수로 SUM한 결과를 음식종류별로 순위를 매겨준다3. 결과를 서브쿼리로 FROM절에 보내고(인라인뷰) 순위가 1인 행들만 필터링 한다4. 음식종류, ID, 식당이름, 즐겨찾기 수를 조회한다5. 음식종류로 내림차순 정렬한다[정답]SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITESFROM (SELECT FOOD_TYPE, ..