일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 #프로그래머스 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
- 프로그래머스 #프로그래머스 우유와 요거트가 담긴 장바구니 #우유와 요거트가 담긴 장바구니
- 조건에 맞는 사용자 정보 조회하기
- SQL #DDL
- 태블로 테이블 계산
- 프로그래머스 #조건별로 분류하여 주문상태 출력하기 #프로그래머스 조건별로 분류하여 주문상태 출력하기
- 프로그래머스 조건에 맞는 사용자 정보 조회하기
- 자동차 대여 기록 별 대여 금액 구하기
- 프로그래머스 조건에 부합하는 중고거래 상태 조회하기
- 저자 별 카테고리 별 매출액 집계하기
- 프로그래머스 #프로그래머스 NULL 처리하기 #NULL 처리하기
- 프로그래머스 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기
- 가격이 제일 비싼 식품의 정보 출력하기 #프로그래머스 가격이 제일 비싼 식품의 정보 출력하기 #프로그래머스 #식품분류별 가장 비싼 식품의 정보 조회하기 #프로그래머스 식품분류별 가장 비
- 프로그래머스 #프로그래머스 중성화 여부 파악하기 #중성화 여부 파악하기
- 프로그래머스 #프로그래머스 서울에 위치한 식당 목록 출력하기 #서울에 위치한 식당 목록 출력하기
- 프로그래머스 조건에 부합하는 중고거래 댓글 조회하기
- 프로그래머스 조건에 맞는 사용자와 총 거래금액 조회하기
- 조건에 부합하는 중고거래 상태 조회하기
- 프로그래머스 #프로그래머스 5월 식품들의 총매출 조회하기 #5월 식품들의 총매출 조회하기
- 강원도에 위치한 생산공장 목록 출력하기 #프로그래머스 강원도에 위치한 생산공장 목록 출력하기 #프로그래머스 #경기도에 위치한 식품창고 목록 출력하기 #프로그래머스 경기도에 위치한 식
- 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기
- 프로그래머스 #프로그래머스 헤비 유저가 소유한 장소 #헤비 유저가 소유한 장소
- 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기
- 조건에 맞는 사용자와 총 거래금액 조회하기
- 프로그래머스 #오랜 기간 보호한 동물(2) #프로그래머스 오랜 기간 보호한 동물(2)
- 프로그래머스 취소되지 않은 진료 예약 조회하기 #취소되지 않은 진료 예약 조회하기
- 조건에 부합하는 중고거래 댓글 조회하기
- 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 #프로그래머스 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
- 프로그래머스 #프로그래머스 입양 시각 구하기(2) #입양 시각 구하기(2) #프로그래머스 입양 시각 구하기(1) #입양 시각 구하기(1)
- 자동차 대여 기록에서 장기/단기 대여 구분하기 #프로그래머스 자동차 대여 기록에서 장기/단기 대여 구분하기
- Today
- Total
목록SQL/프로그래머스 코딩 (53)
데이터 분석
JOIN 서브쿼리 BETWEEN 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 SELECT DISTINCT CAR.CAR_ID, CAR.CAR_TYPE, CAR.DAILY_FEE * 30 * (100 - PLAN.DISCOUNT_RATE) / 100 FEE FROM CAR_RENTAL_COMPANY_CAR CAR LEFT OUTER JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY HIS ON CAR.CAR_ID = HIS.CAR_ID JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN PLAN ON CAR.CAR_TYPE = PLAN.CAR_TYPE WHERE CAR.CAR_TYPE IN ('세단', 'SUV') AND CAR.CAR_ID NOT IN ( SE..
서브쿼리 JOIN 조건에 맞는 사용자 정보 조회하기 SELECT U.USER_ID, U.NICKNAME, B.TOTAL_SALES FROM ( SELECT WRITER_ID, SUM(PRICE) TOTAL_SALES FROM USED_GOODS_BOARD WHERE STATUS = 'DONE' GROUP BY WRITER_ID HAVING SUM(PRICE) >= 700000 ) B JOIN USED_GOODS_USER U ON B.WRITER_ID = U.USER_ID ORDER BY TOTAL_SALES ; 3~7번 째 줄 : USED_GOODS_USER 테이블에서 조건을 통해 가져올 수 있는걸 먼저 가져왔다. 계산하면 다음과 같이 나오고 뒤에 USED_GOODS_USER 테이블 조인해 풀어줬다.
CASE 조건에 부합하는 중고거래 상태 조회하기 거래상태가 SALE 이면 판매중, RESERVED이면 예약중, DONE이면 거래완료 분류하여 출력하기 위해 CASE를 이용한 조건절을 사용해준다. SELECT BOARD_ID, WRITER_ID, TITLE, PRICE, CASE WHEN STATUS = 'SALE' THEN '판매중' WHEN STATUS = 'RESERVED' THEN '예약중' ELSE '거래완료' END STATUS FROM USED_GOODS_BOARD WHERE TO_CHAR(CREATED_DATE, 'YYYYMMDD') = '20221005' ORDER BY BOARD_ID DESC ;
TO_CHAR 조건에 부합하는 중고거래 댓글 조회하기 TO_CHAR(숫자|날짜 [,FORMAT]) 숫자나 날짜를 주어진 FORMAT 형태로 문자열 타입으로 변환 FORMAT 유형 YYYYMM : 년월 형태 YYYY-MM-DD : 년-월-일 형태 SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS, TO_CHAR(R.CREATED_DATE, 'YYYY-MM-DD') CREATED_DATE FROM USED_GOODS_BOARD B JOIN USED_GOODS_REPLY R ON B.BOARD_ID = R.BOARD_ID WHERE TO_CHAR(B.CREATED_DATE, 'YYYYMM') = '202210' ORDER BY CREATED_DA..
GROUP BY IN BETWEEN 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 1. HISTORY테이블안에 여러 개의 CAR_ID가 있기 떄문에 CAR_ID 기준으로 GROUP BY를 통해 묶어준다 2. CAR_ID가 다음 조건과 일치하면 '대여중' 아니면 '대여가능'으로 표현되게 CASE절을 이용해 조건을 준다. 3. 조건으로 2022년10월16일이 포함되는 CAR_ID를 가져온다. SELECT CAR_ID, CASE WHEN CAR_ID IN ( SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE '20221016' BETWEEN TO_CHAR(START_DATE, 'YYYYMMDD') AND TO_CHAR(END_DATE, 'YYY..
DISTINCT 대여 기록이 존재하는 자동차 리스트 구하기 CAR_RENTAL_COMPANY_RENTAL_HISTORY테이블에 CAR_ID가 중복된 값이 있을 수 있다. DISTINCT를 통해 중복을 제거해준다. SELECT DISTINCT(CAR.CAR_ID) FROM CAR_RENTAL_COMPANY_CAR CAR JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY HIS ON CAR.CAR_ID = HIS.CAR_ID WHERE CAR_TYPE = '세단' AND TO_CHAR(START_DATE, 'YYYYMM') = '202210' ORDER BY CAR_ID DESC ; https://school.programmers.co.kr/learn/courses/30/lessons/1..
ROUND 날짜 차이 자동차 평균 대여 기간 구하기 MYSQL에는 DATEDIFF함수를 사용 ORACLE에는 없으므로 -를 이용해 차를 구함 SELECT CAR_ID, ROUND(AVG(END_DATE - START_DATE + 1), 1) AVERAGE_DURATION FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY GROUP BY CAR_ID HAVING ROUND(AVG(END_DATE - START_DATE + 1), 1) >= 7 ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC ; https://school.programmers.co.kr/learn/courses/30/lessons/157342
LIKE 특정 옵션이 포함된 자동차 리스트 구하기 비슷한 문자열을 찾기 위해 LIKE비교문자열을 사용한다. SELECT * FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS LIKE '%네비게이션%' ORDER BY CAR_ID DESC ; https://school.programmers.co.kr/learn/courses/30/lessons/157343 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr