sql 31

ROOT 아이템 구하기

ROOT 아이템을 찾아 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME)을 출력하는 SQL문을 작성해 주세요. 이때, 결과는 아이템 ID를 기준으로 오름차순 정렬해 주세요. SELECT I.ITEM_ID , I.ITEM_NAMEFROM ITEM_INFO IJOIN ITEM_TREE TON I.ITEM_ID = T.ITEM_IDWHERE PARENT_ITEM_ID IS NULLORDER BY 1 ASC; 단, 각 아이템들은 오직 하나의 PARENT 아이템 ID를 가지며, ROOT 아이템의 PARENT 아이템 ID는 NULL 입니다. ROOT 아이템이 없는 경우는 존재하지 않습니다. 위의 2줄이 힌트였음!ROOT 아이템을 찾아야하는데 결국 마지막 뿌리까지 찾아가야 하는 거였고ROOT 아이템..

SQL 코드카타 2024.10.15

업그레이드 된 아이템 구하기

아이템의 희귀도가 'RARE'인 아이템들의 모든 다음 업그레이드 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬주세요. SELECT I.ITEM_ID , I.ITEM_NAME , I.RARITYFROM ITEM_INFO IJOIN ITEM_TREE TON I.ITEM_ID = T.ITEM_IDWHERE T.PARENT_ITEM_ID IN (SELECT ITEM_ID FROM ITEM_INFO WHERE RARITY = 'RARE')ORDER BY ITEM_ID DESC; RARE 아이템 의 다음 업그레이드 아이템을 찾아야 한다. 1. RARE 아이템..

SQL 코드카타 2024.10.11

조건에 맞는 사원 정보 조회하기

HR_DEPARTMENT, HR_EMPLOYEES, HR_GRADE 테이블에서 2022년도 한해 평가 점수가 가장 높은 사원 정보를 조회하려 합니다. 2022년도 평가 점수가 가장 높은 사원들의 점수, 사번, 성명, 직책, 이메일을 조회하는 SQL문을 작성해주세요. 2022년도의 평가 점수는 상,하반기 점수의 합을 의미하고, 평가 점수를 나타내는 컬럼의 이름은 SCORE로 해주세요. WITH a AS (SELECT EMP_NO , SUM(SCORE) SCOREFROM HR_GRADEGROUP BY EMP_NO)SELECT a.SCORE , e.EMP_NO , EMP_NAME , POSITION , EMAILFROM HR_EMPLOYEES eJOIN a ON a.EMP_..

SQL 코드카타 2024.10.10

연도 별 평균 미세먼지 농도 조회하기

AIR_POLLUTION 테이블에서 수원 지역의 연도 별 평균 미세먼지 오염도와 평균 초미세먼지 오염도를 조회하는 SQL문을 작성해주세요. 이때, 평균 미세먼지 오염도와 평균 초미세먼지 오염도의 컬럼명은 각각 PM10, PM2.5로 해 주시고, 값은 소수 셋째 자리에서 반올림해주세요. 결과는 연도를 기준으로 오름차순 정렬해주세요. SELECT 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(YM); ROUND 함수 사용법을 익히기에 좋다!

SQL 코드카타 2024.10.08

노선별 평균 역 사이 거리 조회하기

SUBWAY_DISTANCE 테이블에서 노선별로 노선, 총 누계 거리, 평균 역 사이 거리를 노선별로 조회하는 SQL문을 작성해주세요. 총 누계거리는 테이블 내 존재하는 역들의 역 사이 거리의 총 합을 뜻합니다. 총 누계 거리와 평균 역 사이 거리의 컬럼명은 각각 TOTAL_DISTANCE, AVERAGE_DISTANCE로 해주시고, 총 누계거리는 소수 둘째자리에서, 평균 역 사이 거리는 소수 셋째 자리에서 반올림 한 뒤 단위(km)를 함께 출력해주세요. 결과는 총 누계 거리를 기준으로 내림차순 정렬해주세요. SELECT ROUTE , CONCAT(ROUND(SUM(D_BETWEEN_DIST), 1),'km') AS TOTAL_DISTANCE , CONCAT(ROUND(AVG(D_BETWE..

SQL 코드카타 2024.10.08

550. Game Play Analysis IV

WITH cte_login AS( SELECT player_id , DATEDIFF(event_date, MIN(event_date) OVER(PARTITION BY player_id)) = 1 as login FROM activity)SELECT ROUND(SUM(login) / COUNT(DISTINCT player_id), 2) as fractionFROM cte_login DATEDIFF(event_date, MIN(event_date) OVER(PARTITION BY player_id))=1event_date 와 player_id의 처음 로그인한 날짜 사이의 일수 계산이 1일 때 라는 조건이 True 면 1, False 면 0으로 표기된다. * MIN(event_date) OVER..

SQL 코드카타 2024.05.31

1661. Average Time of Process per Machine

There is a factory website that has several machines each running the same number of processes. Write a solution to find the average time each machine takes to complete a process. The time to complete a process is the 'end' timestamp minus the 'start' timestamp. The average time is calculated by the total time to complete every process on the machine divided by the number of processes that were ..

SQL 코드카타 2024.05.03

상품을 구매한 회원 비율 구하기

USER_INFO 테이블과 ONLINE_SALE 테이블에서 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 회원의 비율(=2021년에 가입한 회원 중 상품을 구매한 회원수 / 2021년에 가입한 전체 회원 수)을 년, 월 별로 출력하는 SQL문을 작성해주세요. 상품을 구매한 회원의 비율은 소수점 두번째자리에서 반올림하고, 전체 결과는 년을 기준으로 오름차순 정렬해주시고 년이 같다면 월을 기준으로 오름차순 정렬해주세요. SELECT YEAR(sales_date) , MONTH(sales_date) , COUNT(DISTINCT user_id) PUCHASED_USERS , ROUND(COUNT(DISTINCT user_id)/ (SELECT COUNT(user_id) FROM us..

SQL 코드카타 2024.04.19

자동차 대여 기록 별 대여 금액 구하기

CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '트럭'인 자동차의 대여 기록에 대해서 대여 기록 별로 대여 금액(컬럼명: FEE)을 구하여 대여 기록 ID와 대여 금액 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 대여 기록 ID를 기준으로 내림차순 정렬해주세요. SELECT history_id , round(daily_fee * (datediff(end_date, start_date) + 1) * COALESCE(1 - (discount_rate * .01),1) ,0) AS fe..

SQL 코드카타 2024.04.18