MySQL 윈도우 함수와 PARTITION BY를 사용할 때, MAX()의 역할 문의드립니다. 0 2 1,166

by 이동희 [2020.02.12 15:13:56]



 

아래와 같은 MySQL 윈도우 함수와 PARTITION BY를 사용할 때, MAX(company)의 역할이 무엇인가요?

SELECT company,
	MAX(company) OVER(PARTITION BY company ORDER BY year) AS test_col
FROM Sales;

아래와 같이 MAX()를 제외하면, 오류가 발생하는 이유는 무엇인가요?

SELECT company,
	company OVER(PARTITION BY company ORDER BY year) AS test_col
FROM Sales;

 

by 마농 [2020.02.12 16:48:20]

문법 자체가 그래요. 문법에 안맞게 고치면 에러나는 거구요.
MAX 는 주어진 범위 안에서 제일 큰거 가져오는 역할을 합니다.
위 구문은 회사로 구분 지었을 때 하나의 회사 안에서 가장 큰 회사를 가져오는 거라서
쓸데 없는 코드입니다.
회사 내에서 가장큰 사원을 가져온다던가? 가장 큰 급여를 가져와야지 의미가 있죠.
회사 내에서 가장큰 회사는 그냥 회사 그 자체죠.
분석함수 부분 참고해 보세요.
http://gurubee.net/oracle/advanced


by 이동희 [2020.02.12 17:05:30]

좋은 답변 감사합니다 :) 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입