PRACTICE/SQL 108

[MySQL] 2단계 27. 재구매가 일어난 상품과 회원 리스트 구하기

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/131536SELECT USER_ID, PRODUCT_IDFROM ONLINE_SALEGROUP BY USER_ID, PRODUCT_IDHAVING COUNT(PRODUCT_ID) >= 2ORDER BY USER_ID ASC, PRODUCT_ID DESC;동일한 회원이 동일한 상품을 2번 이상 구매한 경우만 조회해야 하는 조건이다.GROUP BY로 동일 회원-상품 조합을 묶고,  COUNT를 이용해 재구매 여부를 판별한다.HAVING 절에서 COUNT(PRODUCT_ID) >= 2 조건으로 재구매한 경우만 필터링 한다.이 문제에서 GROUP BY 절에 PRODUCT_ID를 포함해야 하는 이유 ..

PRACTICE/SQL 2025.01.01

[MySQL] 2단계 26. 조건에 부합하는 중고거래 상태 조회하기

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/164672SELECT BOARD_ID, WRITER_ID, TITLE, PRICE, CASE WHEN STATUS = 'SALE' THEN '판매중' WHEN STATUS = 'RESERVED' THEN '예약중' WHEN STATUS = 'DONE' THEN '거래완료' END AS STATUSFROM USED_GOODS_BOARDWHERE CREATED_DATE = '2022-10-05'ORDER BY BOARD_ID DESC; CASE 문을 통해 거래 상태를 분류 2022년 10월 5일..

PRACTICE/SQL 2024.12.30

[MySQL] 2단계 23. 물고기 종류 별 잡은 수 구하기

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/293257SELECT COUNT(*) AS FISH_COUNT, FNI.FISH_NAME AS FISH_NAMEFROM FISH_INFO FIJOIN FISH_NAME_INFO FNI ON FI.FISH_TYPE = FNI.FISH_TYPEGROUP BY FNI.FISH_NAMEORDER BY FISH_COUNT DESC; 물고기 이름 별로 잡은 수(FISH_COUNT)를 내림차순으로 정렬했다. 문제에서 물고기의 종류 별 물고기의 이름과 잡은 수라고 되어 있어서  물고기의 종류마다 그에 해당하는 개별 이름을 세는 것으로 풀이할 수 있다.  즉, 같은 종류에 여러 이름이 있을 수 있으므로 이름..

PRACTICE/SQL 2024.12.25

[MySQL] 2단계 22. 연도 별 평균 미세먼지 농도 조회하기

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/284530SELECT YEAR(YM) AS YEAR, ROUND(AVG(PM_VAL1), 2) AS PM10, ROUND(AVG(PM_VAL2), 2) AS "PM2.5"FROM AIR_POLLUTIONWHERE LOCATION2 = '수원'GROUP BY YEAR(YM)ORDER BY YEAR; ROUND 함수로 소수 표현(셋째 자리에서 반올림하라는 조건 수행), 별칭 지정, 년도별로 그룹화, 수원 지역으로 필터링, 년도로 정렬했다.

PRACTICE/SQL 2024.12.25

[MySQL] 2단계 21. 가격대 별 상품 개수 구하기

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/131530SELECT FLOOR(PRICE / 10000) * 10000 AS PRICE_GROUP, COUNT(*) AS PRODUCTSFROM PRODUCTGROUP BY PRICE_GROUPORDER BY PRICE_GROUP;구간별 최소 가격을 기준으로 상품 개수를 세기 위해 PRICE를 만원 단위로 나누는 로직 추가  FLOOR 함수로 가격을 만원 단위로 그룹화하고, 그 값을 PRICE_GROUP 별칭으로 지정,각 구간별 상품 수를 계산하는 COUNT를 PRODUCTS 별칭으로 지정했다.FLOOR 함수지정한 숫자의 소수점을 버리고 가장 가까운 작거나 같은 정수로 내림하는 함수 ex ..

PRACTICE/SQL 2024.12.25

[MySQL] 2단계 19. 3월에 태어난 여성 회원 목록 출력하기

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/131120 SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH,"%Y-%m-%d") AS DATE_OF_BIRTHFROM MEMBER_PROFILEWHERE TLNO IS NOT NULL AND MONTH(DATE_OF_BIRTH) = 3 AND GENDER = 'W'ORDER BY MEMBER_ID;ㄴ DATE_OF_BIRTH에서 월을 추출 ㄴ GENDER가 여성인 경우 필터링 일반적으로 AS 뒤에 붙이는 별칭에는 큰따옴표(" ")나 작은따옴표(' ')를 쓰지 않아도 된다.  다만, 특수문자나 공백이 포함된 경우에는 반드시 ..

PRACTICE/SQL 2024.12.22

[MySQL] 2단계 18. 성분으로 구분한 아이스크림 총 주문량

문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/133026SELECT II.INGREDIENT_TYPE, SUM(FH.TOTAL_ORDER) AS TOTAL_ORDERFROM FIRST_HALF FHJOIN ICECREAM_INFO II ON FH.FLAVOR = II.FLAVORGROUP BY II.INGREDIENT_TYPEORDER BY TOTAL_ORDER; 아이스크림 성분 타입별로 총주문량을 합산한 데이터를  'TOTAL_ORDER'라는 명칭으로 출력, 주문량이 적은 순으로 정렬했다.

PRACTICE/SQL 2024.12.21
320x100