월별 글 목록: 2018년 12월월

MAC에서 Python 3.x 버젼 쉽게 사용하기

Mac에는  Python이 기본적으로 설치되어있다. 하지만 아쉽게도 최신 버전이 아니라 2.7.10 버젼(모하비 기준)의 Python이 설치되어 있다.

Python을 그냥 사용해도 문제는 없겠지만 Python2.x와 Python3.x는 호환성이 문제가 있기 때문에 버젼에 대한 확실한 구분이 필요하다. 지금 Python을 통해서 개발을 해야 한다면 아마도 당연히 Python3.x를 활용해서 개발을 해야 할 것이다.

Python2.x와 Python3.x의 구체적인 차이점은 https://wiki.python.org/moin/Python2orPython3 참조

그렇다면  Mac에서 Python을 업그레이드 하는 방법 여러가지가 있겠지만, 이전 버젼을 제거하지 않고 사용하는 방법으로 Python을 공식 홈페이지의 https://www.python.org/downloads/ 를 통해서 시스템에 맞는 버젼의 Python3.x를 설치하면 된다. 하지만 문제점은 python이라는 명령어가 아니라 python3이라는 숫자가 계속 붙어서 사용해야 한다는 것이다.

해당 문제를 해결하기 위해서 유닉스(리눅스) 시스템 계열의 꼼수를 활용한다.

시스템 환경 설정 값에  Alias를 통한  시스템 명령어 변경이다.

설정된 값을 적용하는 방법은 현재의 터미널을 재실행하는 방법과 터미널 창에서 source ~/.profile 을 활용하여 설정 파일을 다시 로드하는 방법이 있다.

MYSQL에서 그룹별 RANKING 구하기

RANKING을 구할 때 공부를 위해서는 특정값을 기준으로 구하면 되지만 실제 업무를 하다보면 특정값을 기준으로 하되 그룹별로 RANKING을 구해야 하는 경우가 태반이다.

ORACLE에서는 간단하게 RANKING관련 내장 함수와 PARTITION BY를 사용하면 쉽게 구현할 수 있다.

ORACLE – PARTITION BY

하지만 MYSQL은 개발자가 직접 구현을 해줘야 한다.
그래서 지난번에 작성했던 MYSQL에서 RANKING(RANK & ROW_NUMBER) 구현하기에서 추가적으로 그룹핑을 해서 RANKING을 구하는 방법을 설명하고 그룹핑 설명은 ROW_NUMBER()RANKING을 기준으로 설명한다.

MYSQL – ROW_NUMBER()

다음 쿼리는 ROW_NUMBER()를 구하는 쿼리에 추가적으로 그룹핑할 컬럼을 정의하고 해당 컬럼을 기준으로 RANKING을 변경하도록 한다.

MYSQL – GROUP ROW_NUMBER()

RANKING 방식으로 구현을 하고 싶다면 @RANK에 대한 값을 계산하는 부분에 IF 구문과 @LAST 변수를 활용하면 된다.