본문 바로가기

SQL/[HackerRank]

[HackerRank/MySQL] SQL Project Planning

728x90

< Problem >

프로젝트 별 시작일과 종료일 출력하기 (프로젝트 기간 기준 오름차순)

링크:  https://www.hackerrank.com/challenges/sql-projects/problem

 

SQL Project Planning | HackerRank

Write a query to output the start and end dates of projects listed by the number of days it took to complete the project in ascending order.

www.hackerrank.com


< Code >

SELECT MIN(start_date), MAX(end_date)
FROM (SELECT start_date, end_date, start_date-ROW_NUMBER() OVER(ORDER BY start_date) as r
      FROM Projects) AS a
GROUP BY r
ORDER BY DATEDIFF(MAX(end_date),MIN(start_date)) ASC, MIN(start_date) ASC

 

< Lesson & Learned >

SELECT: 키워드와 함께 검색하고 싶은 속성의 이름을 나열
MIN( ): 속성 값의 최솟값을 검색하기 위한 집계함수
MAX( ): 속성 값의 최대값을 검색하기 위한 집계함수

FROM: 키워드와 함께 검색하고 싶은 속성이 있는 데이블의 이름을 나열
ROW_NUMBER() OVER (ORDER BY 절): 정해진 조건대로 데이터를 정렬한 후, 순서대로 숫자를 부여함.
ORDER BY: 결과 테이블 내용을 원하는 순서로 출력. 오름차순(기본): ASC, 내림차순: DESC
GROUP BY: 특정 속성의 값이 같은 투플을 모아 그룹을 만들고, 그룹별로 검색. HAVING 키워드를 이용해 그룹에 대한 조건을 작성함.

728x90

'SQL > [HackerRank]' 카테고리의 다른 글

[HackerRank/MySQL] Symmetric Pairs  (0) 2023.04.14
[HackerRank/MySQL] Placements  (1) 2023.04.14
[HackerRank/MySQL] Contest Leaderboard  (0) 2023.04.14
[HackerRank/MySQL] Challenges  (0) 2023.04.14
[HackerRank/MySQL] Ollivander's Inventory  (0) 2023.04.11