2023/06 32

프로그래머스 Lv 4 - 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기

- https://school.programmers.co.kr/learn/courses/30/lessons/157339 With counter AS( SELECT CAR.DAILY_FEE , CAR.CAR_ID , CAR.CAR_TYPE , START_DATE , END_DATE FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY AS HISTORY INNER JOIN CAR_RENTAL_COMPANY_CAR AS CAR ON CAR.CAR_ID = HISTORY.CAR_ID AND CAR.CAR_TYPE IN ('세단', 'SUV') WHERE (START_DATE > '2022-11-30' or END_DATE < '2022-11-01') ) SELECT DISTINCT CAR_ID..

프로그래머스 Lv 4 - 자동차 대여 기록 별 대여 금액 구하기

링크: https://school.programmers.co.kr/learn/courses/30/lessons/151141 습득한 점: 테이블 끼리의 조인을 할 때도, 두 테이블에 단순히 같은 값이 있다고 자주쓰던 INNER JOIN으로 그냥 매칭 시킬 것이 아니라 묶어야 할 테이블의 데이터 형식에 맞추어 조인 할 수 있도록 CASE 문을 통해, 특정 구간의 숫자 레인지를 값으로 바꾸는 데이터 조작 방식과, 이를 NULL 값이 드러 날 수 있도록 LEFT JOIN 으로 묶는 쿼리 작성 방식을 알게되었음. 주어진 테이블의 전체 형태를 보고 데이터 조작과, 테이블 조인을 시도해야 겠다는 생각이 들었음. 테이블을 연계구조를 한눈에 파악하기가 아직은 힘들었는데, 한눈에 파악 안되면 직접 그림을 그려보는 것도 하..

프로그래머스 Lv 5 - 상품을 구매한 회원 비율 구하기

링크: https://school.programmers.co.kr/learn/courses/30/lessons/131534 습득한 점: 1. 문제를 읽고, 내가 이해한 플로우가 맞는지 예시로 나온 부분도 제대로 파악하기!!! 이 문제의 경우 PUCHASED_USERS 를 구하는 과정에서 중복값을 고려하지 않아서 한참을 헤멧다. 읽기만 하고 문제가 원하는 바를 제대로 이해하지 않음. PUCHASED_USERS 컬럼의 경우 중복을 제거한 숫자를 카운팅하는 점을 주의해야함. (예시까지 이해하지 않으면, 계속 틀리게 될 것 같다) 2. JOIN의 경우 INNER JOIN으로 자동 인식된다는 점 3. 테이블 조인할 때, AND조건으로 조인될 조건을 추가할 수 있음. INNER JOIN USER_INFO U ON ..

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

https://school.programmers.co.kr/learn/courses/30/lessons/164673 1. 조인조건을 찾아보니 다들 Board_id로 조인했고, 나만 Writer_id 기준으로 묶었더라. 2. 쿼리 짜는 것은 쉬웠지만, 데이터 포맷을 바꾸는 것 같은 세부적인 작업에 아직 익숙하지 않아서 연습이 필요하다. 3. CREATED_DATE(댓글작성일) 기준으로 오름차순 정렬, 댓글작성일이 같으면 TITLE(게시글 제목) 기준으로 오름차순 정렬이란 말에 어떻게 풀어야 할 지 살짝 멈칫. 결과적으로 경우의 수는 같거나 다르냐 2가지 일 뿐인데, 댓글작성일이 같을 경우를 처리하는 쿼리를 어떻게 만들지 생각하고 있었다;;; 4. 문제 제대로 읽자. 쉬운 문제야 SELECT TITLE , ..

기존 학습 자료

SQL Aggregate 함수 = SUM, COUNT, AVG... AVG, COUNT는 null은 세지 않음 COUNT -------------------------------------------------------------------------- SELECT COUNT(*) FROM Products >>> 프로덕트의 행들, 데이터 레코드의 개수 세기, null 값 포함 SELECT COUNT(Price) FROM Products AS COUNT(Price) >>> 특정 컬럼의 행 갯수 SELECT COUNT(DISTINCT Price) FROM Products AS COUNT(Price) >>> 중복값은 제외하고 셀 때 + null 값 미포함 SUM, AVG(null 계산에서 제외처리됨 ) --..

Leetcode 184 - Department Highest Salary

https://leetcode.com/problems/department-highest-salary/ *** SELECT에서 연산한 결과물은 WHERE 절에서 사용할 수 없음 SELECT department.name AS Department , sub.name AS Employee , sub.max_salary AS Salary FROM( SELECT id , name , salary , departmentid , MAX(salary) OVER (PARTITION BY departmentId) AS max_salary FROM employee -- WHERE salary = max_salary >>> SELECT에서 연산한 결과물은 WHERE 절에서 사용할 수 없음 ) as sub INNER JOIN D..