GROUP BY 1은 SELECT절의 첫 번째 컬럼을 기준으로 그룹화하라는 의미입니다.
SELECT region
, COUNT(*)
FROM users
GROUP BY 1;
→ GROUP BY region과 동일한 결과
가독성이 떨어짐 : 컬럼명을 직접 쓰지 않기 때문에, 쿼리를 처음 보는 사람이 이해하기 어려움.
유지보수에 불리함 : SELECT절 순서가 바뀌면 GROUP BY도 함께 수정해야 함.
SELECT절에 계산식이 길어 가독성이 더 떨어질 때
예) GROUP BY 1 대신 GROUP BY EXTRACT(YEAR FROM created_at)
테스트용 임시 쿼리처럼, 코드 변경이 잦은 상황
✔️ 실무에서는 GROUP BY 컬럼명 사용을 기본으로 하고,
컬럼 순서 기준 방식은 필요한 경우에만 제한적으로 사용하는 게 안전합니다.