[SQL] 변수 이름 대신 인덱스 이용하기

전도운·2024년 6월 28일
0
post-custom-banner

쿼리 작성 시 변수의 이름이 너무 길어서 일일이 쓰기 귀찮을 때가 많다. 이럴 때 유용하게 쓸 수 있는 기능이 인덱스(순서)를 이용하는 것이다.

아래 테이블을 가정해보자.

dategame_account_idgame_actor_id
2015-12-25n8bt8lun-y1ub-3pg4-903t-geb6d19qx94d1
2023-04-11zuvcwrwc-r771-0kyn-lp5a-gg6073buevnr2
2018-03-27hskzhpj5-tide-grdm-tn0v-ib1vwpoyzx773

데이터를 특정 변수를 기준으로 정렬하기 위해서는 아래와 같은 쿼리를 작성해야할 것이다.

select date_format(date, '%Y-%m') as 'm', game_account_id, game_actor_id
	from users
	order by m asc, game_actor_id desc;

이때 game_actor_id는 변수이름이 길다. 이러한 변수가 많다면 이를 일일이 적는 데 꽤 시간이 걸릴 수 있다. 이때 아래와 같이 쿼리를 작성하면 동일한 결과를 얻을 수 있다.

select date_format(date, '%Y-%m') as 'm', game_account_id, game_actor_id
	from users
	order by 1 asc, 3 desc;

위 코드와 아래 코드의 차이점은 m 변수를 1로, game_actor_id를 3으로 대체하여 쿼리를 작성한 점이다. 자세히 보면 숫자는 해당 칼럼의 위치(index)이다.

이상은 아래와 같이 정리할 수 있다.

SQL에서 group by나 order by에 변수를 지정해줄 때 변수명 대신 변수의 인덱스 정보를 이용하여 코드를 압축해 작성할 수 있다.

profile
의미 있는 한걸음을 추구합니다.
post-custom-banner

0개의 댓글