SQL에서 ORDER BY 구문을 사용한 다중 정렬이란, 결과를 정렬할 때 여러 개의 기준(컬럼)을 순서대로 적용할 수 있다는 의미입니다.
즉, 하나의 ORDER BY 구문에서 여러 정렬 조건을 나열하면, SQL은 왼쪽부터 오른쪽으로 순차적으로 정렬을 수행합니다.
SELECT USER_ID, PRODUCT_ID, SALES_AMOUNT
FROM ONLINE_SALE
ORDER BY USER_ID ASC, PRODUCT_ID DESC;

위의 데이터를 ORDER BY USER_ID ASC, PRODUCT_ID DESC로 정렬하면 다음과 같이 됩니다:

SQL은 왼쪽에서 오른쪽으로 적용된 기준에 따라 정렬을 수행.
첫 번째 기준이 동일하면 두 번째 기준이 적용됨.
ASC와 DESC를 조합해 원하는 방식으로 데이터를 구성할 수 있음.
SELECT USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE
FROM ONLINE_SALE
ORDER BY USER_ID ASC, PRODUCT_ID DESC, SALES_DATE ASC;
위 예제에서는:

SQL 쿼리에서 GROUP BY가 실행되는 순서는 다음과 같습니다:
FROM → 테이블에서 데이터 조회.
WHERE → 조건이 있으면 필터링 (필요 시 사용).
GROUP BY → 데이터를 지정된 컬럼 기준으로 그룹화.
HAVING → 그룹화된 결과에서 조건 필터링.
SELECT → 최종 결과를 선택.
ORDER BY → 결과 정렬.
SELECT USER_ID, PRODUCT_ID, SUM(SALES_AMOUNT) AS TOTAL_SALES
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
ORDER BY TOTAL_SALES DESC;
SELECT USER_ID, COUNT(DISTINCT PRODUCT_ID) AS UNIQUE_PRODUCTS
FROM ONLINE_SALE
WHERE SALES_DATE BETWEEN '2023-01-01' AND '2023-12-31'
GROUP BY USER_ID
ORDER BY UNIQUE_PRODUCTS DESC;