반응형

자료구조 및 알고리즘/프로그래머스 28

프로그래머스 - 조건에 맞는 사용자와 총 거래금액 조회하기 (SQL)

💬 내가 작성한 SQL 코드 SELECT B.USER_ID, B.NICKNAME, SUM(A.PRICE) AS TOTAL_SALES FROM USED_GOODS_BOARD AS A INNER JOIN USED_GOODS_USER AS B ON A.WRITER_ID = B.USER_ID WHERE A.STATUS = 'DONE' GROUP BY A.WRITER_ID HAVING SUM(PRICE) >= 700000 ORDER BY TOTAL_SALES ASC; # 1. 회원 ID, 닉네임, 총거래금액을 조회 # 2. 완료된 중고 거래 # 3. 총 금액이 70만원 이상 # 4. 총거래금액을 기준으로 오름차순 정렬 먼저 상단의 주석처럼, 조건을 작성하고 이를 코드로 작성해보는 식의 방법이 문제를 빠르고 정확하..

프로그래머스 - 상위 n개 레코드 (SQL)

💬 내가 작성한 SQL 코드 SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1; # 1. 가장 먼저 들어온 동물의 이름을 조회 난이도는 쉬웠고, LIMIT을 사용해보는 문제였다. LIMIT은 결과에서 몇 개의 행을 반환할 것인지 제한하는 구문이다. LIMIT 시작위치, 반환갯수 (시작위치의 idx는 0부터 시작합니다) ex) SELECT * FROM 테이블명 LIMIT 10; -- 처음 부터 10개만 출력하기 (1 ~ 10) SELECT * FROM 테이블명 LIMIT 100, 10; -- 100번째부터 그 후 10개 출력하기 (101 ~ 110)

프로그래머스 - 재구매가 일어난 상품과 회원 리스트 구하기 (SQL)

💬 내가 작성한 SQL 코드 SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE GROUP BY USER_ID, PRODUCT_ID HAVING COUNT(PRODUCT_ID) >= 2 # 1이 아니라 2부터 ! 재구매 ORDER BY USER_ID ASC, PRODUCT_ID DESC; # 1. 동일한 회원이 동일한 상품을 재구매한 데이터 # 2. 재구매한 회원 ID와 재구매한 상품 ID를 출력 # 3. 회원 ID를 기준으로 오름차순 정렬 # 4. 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬 이번 문제는 HAVING을 사용하는 문제였다. HAVING은 해석상 WHERE과 동일하다. 일반조건은 WHERE 절에 기술하지만, 그룹 함수를 포함한 조건은 HAVING 절에 ..

프로그래머스 - 서울에 위치한 식당 목록 출력하기 (SQL)

💬 내가 작성한 SQL 코드 SELECT A.REST_ID, A.REST_NAME, A.FOOD_TYPE, A.FAVORITES, A.ADDRESS, ROUND(AVG(B.REVIEW_SCORE), 2) AS SCORE FROM REST_INFO AS A INNER JOIN REST_REVIEW AS B ON A.REST_ID = B.REST_ID WHERE SUBSTR(ADDRESS, 1, 2) = '서울' GROUP BY A.REST_ID ORDER BY SCORE DESC, A.FAVORITES DESC; # 1. 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회 # 2. 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 # 3. 서울에 위치한 식당들 # 4. 결과는 평..

프로그래머스 - 강원도에 위치한 생산공장 목록 출력하기 (SQL)

💬 내가 작성한 SQL 코드 SELECT FACTORY_ID, FACTORY_NAME, ADDRESS FROM FOOD_FACTORY WHERE SUBSTR(ADDRESS, 1, 3) = '강원도' ORDER BY FACTORY_ID ASC; # 1. 공장 ID, 공장 이름, 주소를 조회 # 2. 강원도에 위치한 식품공장 # 3. 결과는 공장 ID를 기준으로 오름차순 정렬 조건을 작성하고 해결하니까, 너무너무 쉽다. 직관적인 SQL 재밌다 ....

프로그래머스 - 인기있는 아이스크림 (SQL)

💬 내가 작성한 SQL 코드 SELECT FLAVOR FROM FIRST_HALF ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID ASC; # 1. 맛 조회 # 2. 총 주문량을 기준으로 내림차순 정렬 # 3. 총 주문량이 같으면 출하번호를 기준으로 오름차순 정렬 너무너무너무 쉬운 문제였다. 문제를 풀 때 조건을 먼저 정리하여 작성하고, 이를 코드로 옮기는 듯의 풀이가 나한테 잘 맞는 것 같다. 문제를 정확히 정의하고 ! 이를 구현하는 형식으로 !

프로그래머스 - 과일로 만든 아이스크림 고르기 (SQL)

💬 내가 작성한 SQL 코드 SELECT A.FLAVOR FROM FIRST_HALF AS A INNER JOIN ICECREAM_INFO AS B # LEFT JOIN ON A.FLAVOR = B.FLAVOR WHERE A.TOTAL_ORDER > 3000 AND B.INGREDIENT_TYPE = 'fruit_based' ORDER BY A.TOTAL_ORDER DESC; # 1. 아이스크림 맛 조회 # 2. 총 주문량이 3,000보다 높고 # 3. 아이스크림의 주 성분이 과일인 맛 # 4. 총주문량 큰 순서대로(=내림차순) 해당 문제는 어렵지 않은 문제였다. 주석으로 작성한 4가지 조건을 만족하는 코드를 작성하면 되는 문제였다. 문제를 해결하면서, 해당 문제는 INNER JOIN / LEFT JOI..

프로그래머스 - 흉부외과 또는 일반외과 의사 목록 출력하기 (SQL)

💬 내가 작성한 SQL 코드 SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMD FROM DOCTOR WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS' ORDER BY HIRE_YMD DESC, DR_NAME ASC; # 1. 이름, 의사ID, 진료과, 고용일자를 조회 # 2. 진료과가 흉부외과(CS)이거나 일반외과(GS) # 3. 고용일자를 기준으로 내림차순 정렬, 고용일자가 같다면 이름을 기준으로 오름차순 정렬 이번 문제도 너무 쉬운 문제였다. OR을 사용해보기 위한 문제로 느껴졌다.

프로그래머스 - 3월에 태어난 여성 회원 목록 출력하기 (SQL)

💬 내가 작성한 SQL 코드 SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH FROM MEMBER_PROFILE WHERE GENDER = 'W' AND SUBSTR(DATE_OF_BIRTH, 6, 2) = '03' AND TLNO is not null ORDER BY MEMBER_ID ASC; # 1. ID, 이름, 성별, 생년월일을 조회 # 2. 생일이 3월인 여성 회원 # 3. 전화번호가 NULL인 경우는 출력대상에서 제외 # 4. 회원ID를 기준으로 오름차순 정렬 이번 문제는 어렵지 않았고, 위에 주석으로 작성한 4가지 조건을 고려하여 코드를 작성하면 풀리는 문제였다. 주의해야..

프로그래머스 - 조건에 부합하는 중고거래 댓글 조회하기 (SQL)

💬 내가 작성한 SQL 코드 (실패 코드) = WHERE 문이 잘못됨 SELECT A.TITLE, A.BOARD_ID, B.REPLY_ID, B.WRITER_ID, B.CONTENTS, DATE_FORMAT(B.CREATED_DATE,'%Y-%m-%d') AS CREATED_DATE FROM USED_GOODS_BOARD AS A INNER JOIN USED_GOODS_REPLY AS B ON A.BOARD_ID = B.BOARD_ID WHERE DATE_FORMAT(B.CREATED_DATE,'%Y-%m') = '2022-10' ORDER BY B.CREATED_DATE ASC, A.TITLE ASC; # 댓글 작성일이 같다면 제목 기준으로 오름차순 # 게시글 제목, 게시글 ID, 댓글 ID, 댓글작성..

728x90
반응형