Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Stack
- lv0
- 이진수 변환
- 스프링부트 도커
- SWEA
- lv2
- 스프링부트 도커로 배포
- 자바
- 오름차순 정렬
- 스프링부트 도커 배포
- Queue
- java
- 프로그래머스 문자열 정렬
- 스택
- 큐
- 프로그래머스 자바
- 백준
- COS Pro
- StringTokenizer
- 백준 N과 M 자바
- Lv1
- index of
- 클라이언트
- 문자열
- 삼각형의 완성조건
- 버퍼
- 프로그래머스
- 프로그래머스 풀이
- 알고리즘
- Programmers
Archives
- Today
- Total
mun dev
[HackerRank] SQL Project Planning 오라클 풀이 본문
문제링크
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
풀이
1. 연속하는 행끼리 그룹화하기 위해 ROW_NUMBRT()를 사용
2. ROW_NUMBER()함수는 ORDER BY 조건대로 정렬한 테이블의 행번호를 반환
3. 행의 집합의 날짜가 연속한다면 START_DATE가 1씩 커진다면, 행번호 도한 일정하게 커지므로 연산한 결과는 같은 값을 가지게 된다.
4. 걸린시간으로 먼저 정렬을 해야하므로 MAX, MIN함수를 사용해 걸린 시간을 계산한다.
코드
select min(start_date), max(end_date)
from (
select start_date
, end_date
, start_date - row_number() over(order by start_date) as prj
from projects p)
group by prj
order by max(end_date) - min(start_date), min(start_date);
'알고리즘 > HackerRank' 카테고리의 다른 글
[HackerRank] Population Census 오라클 풀이 (0) | 2024.02.02 |
---|---|
[HackerRank] Revising the Select Query II 오라클 풀이 (0) | 2024.02.02 |
[HackerRank] Contest Leaderboard 오라클 풀이 (1) | 2024.02.02 |
[HackerRank] Top Competitors 오라클 풀이 (1) | 2024.01.31 |
[HackerRank] The Report 오라클 풀이 (1) | 2024.01.31 |