쿼리를 짜다보면 해당 쿼리의 순서를 출력해야하는 경우가 종종 생깁니다.

 

MariaDB의 경우

SELECT ROW_NUMBER() OVER() AS row_number
 
위와같이 사용하면 해당 조회 쿼리의 순서에 맞게 row_number가 카운트 됩니다.
 
그런데 종종 GROUP BY, ORDER BY를 사용하면 row_number가 꼬이는 경우가 발생합니다.
 
그럴경우 아래처럼 하면 됩니다.
 
SELECT ROW_NUMBER() OVER(PARTITION BY user_name ORDER BY user_name, user_id)
 
여기서 PARTITION BY는 GROUP BY로 생각하면 됩니다.
ORDER BY의 경우 조회 쿼리와 같게 맞춰주시면 됩니다.