logo
Search검색어를 포함하는 게시물들이 최신순으로 표시됩니다.
    Table of Contents
    [SQL] ORDER BY와 GROUP BY : 정렬과 요약

    이미지 보기

    [SQL] ORDER BY와 GROUP BY : 정렬과 요약

    • 22.03.14 작성

    • 읽는 데 3

    TOC

    ORDER BY

    • 조회 결과 집합 정렬
    • SELECT 문에 추가하여 사용
    • 정렬 순서 키워드 : ASC(오름차순, default) / DESC(내림차순)

    문법

    SELECT * FROM [table_name] ORDER BY [col] ASC;
    SELECT * FROM [table_name] ORDER BY [col1], [col2] DESC;
    
    • 컬럼을 여러 가지 사용하는 경우 1순위 탐색 컬럼2순위 탐색 컬럼
    • 1순위 탐색 컬럼으로 정렬한 뒤에 같은 범위에 대해 2순위 탐색으로 세부정렬

    사용 예시

    users 테이블에서 나이 순으로 오름차순 정렬하여 상위 10개 조회

    SELECT * FROM users ORDER BY age ASC LIMIT 10;
    

    나이 순, 성(last_name) 순으로 오름차순 정렬하여 상위 10개 조회

    SELECT * FROM users ORDER BY age, last_name ASC LIMIT 10;
    

    계좌 잔액 순으로 내림차순 정렬, 해당 유저의 성과 이름을 10개만 조회

    SELECT last_name, first_name FROM users ORDER BY balance DESC LIMIT 10;
    

    GROUP BY

    • 선택된 행 그룹을 하나 이상의 열 값으로 요약 행 생성
    • SELECT 문의 optional 절
    • 데이터 요약에 주로 사용
    • ⭐ 문장의 WEHRE절이 포함된 경우 반드시 WHERE 절 뒤에 작성

    문법

    SELECT [col1], aggregate_function([col2]) FROM [table_name] GROUP BY [col1], [col2];
    

    사용 예시

    users에서 각 성(last_name)이 몇 명씩 있는지 조회

    SELECT last_name, COUNT(*) FROM users GROUP BY last_name;
    
    • SELECT 직후의 col 요소들은 요약 행의 구성 요소들
    • GROUP BY 뒤의 col 요소는 그룹화의 기준

    AS: 요약 컬럼명 재정의

    • GROUP BY를 이용해 요약하는 경우, 요약 컬럼의 이름을 지정

    SELECT last_name, COUNT(*) AS name_count FROM users GROUP BY last_name;
    
    profile

    FE Developer 박승훈

    노력하는 자는 즐기는 자를 이길 수 없다