inflearn logo
강의

Course

Instructor

Intermediate-Advanced SQL and Practical Data Analysis: 101 Problem Solutions

Advanced SQL Window Functions 2: Practical Problems

연습문제 4번 관련

142

doong

3 asked

1

강사님, 수업 자료랑 강의 내용과 상이한 부분이 있는 것 같아서 여쭤봅니다.

11:50 부분에는 RANGE가 디폴트라고 말씀해주셨는데, 강의 자료에는 ROWS가 디폴트라고 적혀있어서요. 어떤게 맞는 것일까요?

sql mysql dbms/rdbms

Answer 2

0

funcoding

안녕하세요. 답변 도우미입니다.

질문해 주신 내용에 대해 정확하게 설명드리겠습니다.

SQL의 윈도우 함수에서 ORDER BY를 사용할 때, 기본적인 프레임은 `RANGE`가 기본값입니다. 따라서 강의에서 설명하신 대로, RANGE가 디폴트입니다.

### 차이점:

- `RANGE`: 논리적인 범위를 기준으로 윈도우 프레임을 설정합니다. 예를 들어, 특정 값과 동일한 값을 포함하는 논리적인 범위입니다. ORDER BY에서 같은 값이 있을 경우, 해당 값들을 함께 처리합니다.

- `ROWS`: 물리적인 행(row)을 기준으로 윈도우 프레임을 설정합니다. 예를 들어, 현재 행부터 이전 또는 이후의 특정 행 수만큼의 범위를 설정합니다.

### 디폴트 값에 대한 설명:

- ORDER BY를 명시하지 않으면 윈도우 프레임은 전체 범위로 설정됩니다.

- `PARTITION BY`만 있을 때ROWSRANGE가 특별히 적용되지 않으며, 기본적으로 전체 파티션에 대한 계산이 이루어집니다.

- `ORDER BY`를 명시할 때, SQL 표준에서는 기본적으로 `RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW`가 적용됩니다. 즉, 현재 행과 이전까지의 같은 값을 포함한 범위가 기본적으로 설정됩니다.

따라서 강의에서 말씀하신 `RANGE`가 디폴트라는 설명이 맞습니다. 만약 물리적인 행 수를 기반으로 범위를 지정하고 싶다면 ROWS를 명시적으로 사용해야 합니다.

 

관련 자료에서 ROWS 가 디폴트라고 쓴 부분이 제가 실수를 해서 죄송합니다. 관련 자료 업데이트해놓겠습니다.

감사합니다.

잔재미코딩 드림

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 둥절둥절님.

연습문제 4번에 대해 질문 주셔서 감사합니다. 수업 자료와 강의 내용이 상이해서 혼란을 겪으셨군요.

윈도우 함수의 기본값 (디폴트 값)에 대한 내용이라면, 대개 SQL 구현에 따라 달라질 수 있습니다. 일반적으로 MySQL, PostgreSQL 등 대부분의 RDBMS에서는 RANGE가 디폴트로 설정되어 있습니다. 하지만, 이는 데이터베이스의 버전과 설정에 따라 다를 수 있으므로 확인이 필요합니다.

이에 대한 보다 구체적인 내용을 알고 싶으시다면, 지식 공유자님의 기존 답변들을 참고하시는 것을 추천드립니다. 유사한 질문과 답변을 아래 링크에서 확인해 보세요.

이 글들은 SQL과 RDBMS의 오류 해결과 설정에 관해 더 많은 정보를 제공하는 데 도움이 될 것입니다. 강의에서 제공된 정보와 강의 자료를 비교하시면서 확인해 보세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

패키지 구분에 대해 궁금한게 있습니다

0

7

1

노션 링크도 안 열리고, 알려준 vercel도 실행이 안됩니다.

0

10

1

Substack 1년 제공

1

21

3

특별 학습 자료 프로모션 1년 멤버십 무료 제공 문의드립니다

0

27

2

스프링부트 서버 에러나요

0

17

1

코드를 첨부해야하는 이유가 있나요?

0

20

2

간단한 오타 제보입니다.

0

19

1

큰 범위 조회 시 EXPLAIN의 rows 값이 정확하지 않은 이유가 궁금합니다.

0

34

2

실제 FK제약조건을 설정하지 않는이유

0

35

2

조회속도 개선에서 더 개선하는 방법이 궁금합니다.

0

28

2

Sequence 관련 질문

1

32

2

Image Only Query

1

29

2

Free Edition 실습 영상은 아직 업데이트전인가요?

0

22

1

라이브 운영중인 환경의 테이블에 인덱스 추가시 고려사항

0

36

2

where 컬럼에 함수를 적용하는건 좋지 못하다고 들었습니다.

0

78

1

중고급 SQL과 실전 데이터 분석 101 문제 풀이, 13강 EXTRACT

0

84

1

28번 문제 답에대해서 질문드립니다.

0

98

1

중급 연습문제 25번

0

136

1

mysql 워크 벤치 커뮤니티 설치 중 에러

0

131

1

skill

0

207

3

sakila데이터베이스 다운했는데 값이 전부 null

0

176

1

연습문제 37번 관련

0

169

2

연습문제 28번 관련

0

161

3

강의 내 연습문제 유형 관련

0

176

2