Kim Hyeong
sql max() min() 함수 본문
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() 함수는 숫자만 비교가 가능한게 아니라 문자열까지도 비교를 하여 판별할 수 있다는 것을 알아두자