[프로그래머스] 3월에 태어난 여성 회원 목록 출력하기 | MySQL
·
📝 Coding Test/SQL
문제3월에 태어난 여성 회원 목록 출력하기풀이SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') DATE_OF_BIRTHFROM MEMBER_PROFILEWHERE DATE_FORMAT(DATE_OF_BIRTH, '%m') = '03' AND TLNO IS NOT NULL AND GENDER = 'W'ORDER BY MEMBER_ID ASC;3월에 태어난 여성을 구할 때, DATE_FORMAT 함수를 사용했습니다.[mysql] DATE_FORMAT - 날짜 형식 설정MONTH 함수를 사용해도 됩니다.
원하는만큼의 데이터 가져오기 (오라클, MySQL)
·
📝 Coding Test/SQL
오라클ROWNUM을 활용하여 원하는만큼의 데이터를 가져올 수 있습니다.특정한 기준으로 정렬한 후, 원하는만큼의 데이터를 추출하기 위해서 서브쿼리를 사용합니다.예제 - 상위 n개 레코드SELECT NAMEFROM ( SELECT * FROM ANIMAL_INS ORDER BY DATETIME)WHERE ROWNUM MySQLLIMIT를 활용하여 원하는만큼의 데이터를 가져올 수 있습니다.예제 - 가장 큰 물고기 10마리 구하기SELECT ID, LENGTHFROM FISH_INFOWHERE LENGTH >= 10ORDER BY LENGTH DESC, IDLIMIT 10;
[프로그래머스] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 | 오라클
·
📝 Coding Test/SQL
문제대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기풀이SELECT TO_NUMBER(TO_CHAR(START_DATE, 'MM')) MONTH, CAR_ID, COUNT(*) RECORDSFROM CAR_RENTAL_COMPANY_RENTAL_HISTORYWHERE CAR_ID IN ( SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE TO_CHAR(START_DATE, 'YYYYMM') >= '202208' AND TO_CHAR(START_DATE, 'YYYYMM') = 5 ) AND TO_CHAR(START_DATE, 'YYYYMM') >= '202208' AND TO_CHAR(START_DATE, 'YYYYMM') ..
[프로그래머스] 입양 시각 구하기(2) | 오라클
·
📝 Coding Test/SQL
문제입양 시각 구하기(2)풀이SELECT A.HOUR, COUNT(B.DATETIME) COUNTFROM (SELECT LEVEL - 1 AS HOUR FROM DUAL CONNECT BY LEVEL COUNT(*)을 하면 데이터가 없어도 1로 출력하기 때문에, COUNT(B.DATETIME)으로 작성했습니다.0부터 23을 가진 테이블을 만들어주기 위해 CONNECT BY(계층적 쿼리)를 사용하였습니다.참고오라클 순번 채번 CONNECT BY LEVEL 활용하기[Oracle] 오라클 CONNECT BY 사용법 (계층형 쿼리)
[프로그래머스] 년, 월, 성별 별 상품 구매 회원 수 구하기 | 오라클
·
📝 Coding Test/SQL
문제식품분류별 가장 비싼 식품의 정보 조회하기풀이SELECT TO_CHAR(B.SALES_DATE, 'YYYY') YEAR, TO_NUMBER(TO_CHAR(B.SALES_DATE, 'MM')) MONTH, GENDER, COUNT(DISTINCT A.USER_ID) USERSFROM USER_INFO A JOIN ONLINE_SALE B ON A.USER_ID = B.USER_IDWHERE GENDER IS NOT NULLGROUP BY TO_CHAR(B.SALES_DATE, 'YYYY'), TO_NUMBER(TO_CHAR(B.SALES_DATE, 'MM')), GENDERORDER BY 1, 2, 3;1자리 숫자의 달의 경우 앞의 0을 제거하기 위해, TO_NUMBER를 사용했습니다.중복되는 유저가..
[프로그래머스] 식품분류별 가장 비싼 식품의 정보 조회하기 | 오라클
·
📝 Coding Test/SQL
문제식품분류별 가장 비싼 식품의 정보 조회하기풀이SELECT CATEGORY, PRICE MAX_PRICE, PRODUCT_NAMEFROM FOOD_PRODUCTWHERE (CATEGORY, PRICE) IN ( SELECT CATEGORY, MAX(PRICE) FROM FOOD_PRODUCT WHERE CATEGORY IN ('과자', '국', '김치', '식용유') GROUP BY CATEGORY)ORDER BY MAX_PRICE DESC;서브쿼리를 활용하여 문제를 해결했습니다.
[프로그래머스] 보호소에서 중성화한 동물 | 오라클
·
📝 Coding Test/SQL
문제보호소에서 중성화한 동물풀이SELECT AI.ANIMAL_ID, AI.ANIMAL_TYPE, AI.NAMEFROM ANIMAL_INS AI JOIN ANIMAL_OUTS AOON AI.ANIMAL_ID = AO.ANIMAL_IDWHERE (AI.SEX_UPON_INTAKE LIKE 'Intact%') AND (AO.SEX_UPON_OUTCOME LIKE 'Spayed%' OR AO.SEX_UPON_OUTCOME LIKE 'Neutered%')ORDER BY 1;WHERE 조건을 다음과 같이 작성해도 됩니다.WHERE AI.SEX_UPON_INTAKE LIKE 'Intact%' AND AO.SEX_UPON_OUTCOME NOT LIKE 'Intact%'
[프로그래머스] 오프라인/온라인 판매 데이터 통합하기 | 오라클
·
📝 Coding Test/SQL
문제오프라인/온라인 판매 데이터 통합하기풀이SELECT TO_CHAR(SALES_DATE, 'YYYY-MM-DD') SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNTFROM ( SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT FROM ONLINE_SALE UNION SELECT SALES_DATE, PRODUCT_ID, NULL, SALES_AMOUNT FROM OFFLINE_SALE)WHERE TO_CHAR(SALES_DATE, 'YYYY-MM-DD') LIKE '2022-03%'ORDER BY 1, 2, 3;UNION을 사용하여 풀이했습니다.UNION은 중복된 데이터를 제거하고, UNION ALL..
[프로그래머스] 서울에 위치한 식당 목록 출력하기 | 오라클
·
📝 Coding Test/SQL
문제자동차 대여 기록 별 대여 금액 구하기풀이SELECT A.REST_ID, A.REST_NAME, A.FOOD_TYPE, A.FAVORITES, A.ADDRESS, B.REVIEW_SCOREFROM REST_INFO A JOIN (SELECT REST_ID, ROUND(AVG(REVIEW_SCORE), 2) REVIEW_SCORE FROM REST_REVIEW GROUP BY REST_ID) BON A.REST_ID = B.REST_IDWHERE A.ADDRESS LIKE '서울%'ORDER BY REVIEW_SCORE DESC, FAVORITES DESC;REST_ID와 리뷰점수 평균 두 개의 컬럼을 갖는 인라인 뷰를 만들어 조인하여 풀이하였습니다.