Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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
more
Archives
Today
Total
관리 메뉴

Kim Hyeong

sql max() min() 함수 본문

카테고리 없음

sql max() min() 함수

김형완 2018. 9. 11. 16:59

sql의 max()와 min() 함수


max() : 선택된 칼럼에서 가장 큰 값을 가져온다.

기본 구문

SELECT MAX(column_name) FROM table_name


min() : 선택된 칼럼에서 가장 작은 값을 가져온다.

기본 구문

SELECT MIN(column_name) FROM table_name


수치상 가장 큰/작은 값을 가져오지만 , 문자열이 포함되어 있을경우


구구단에서 2*2=4 라는 컬럼을 가져올 때 수치를 비교하는 함수지만

문자열은 각 문자가 위치되어있는 위치값끼리 ASCII 코드를 이용하여 비교를 한다.

(한글의 경우에는 128개의 문자만 지원하는 ASCII코드로는 부족하여 2의16승, 즉 약 65000개의 문자를 표현가능한 UNICODE를 사용한다.)

http://kimhyeong.tistory.com/51

예를들어 테이블에 

이런 값이 있을경우 

ORDER BY 를 이용하여 오름차순 내림차순을 할경우

각 문자의 ASCII 코드를 적용하여 코드의 할당된 값이 각 위치상의 다른 문자와 비교하여

크고 작음을 판별하여 적용하게 된다.


A의 ASCII 코드는 65 a의 ASCII코드는 97 인걸 보았을때

문자열 AAA

문자열 aAA 를 비교해보면

A    A   A

(64)(64)(64)

a    A   A

(97)(64)(64)


각 자리마다의 ASCII코드값을 비교후 처리하게 되는데


여기에서 AAA가 더 작은 값을 갖게 되는것이다.


ASC로 오름차순을 했을 경우 

공백이 가장 작은 값 그리고 ASCII코드에서 숫자 보다 작은 특수문자가 나오고

그다음 숫자 -> 특수문자 -> 영어대문자 -> 특수문자 -> 영어소문자 -> 특수문자 -> 한글 순으로 나오는 것을 볼 수 있다.


그래서 2*2=4와 2*3=6을 비교할경우 1번째 자리와 2번째 자리는 같은 값이기에 비교를 하지 않지만, 3번째 자리는 값이 다르기 때문에 3번째 자리에서 비교를 시도 하여 문자열도 비교를 하여 출력을 할 수 있게 만들어준다.


결론적으로 MAX() MIN() 함수는 숫자만 비교가 가능한게 아니라 문자열까지도 비교를 하여 판별할 수 있다는 것을 알아두자




Comments