[SQL]GROUPING

2025. 5. 21. 16:22Coding Study/데이터베이스

< SQL문의 작성 순서 >

1. SELECT 

2. FROM : 어느 테이블을 대상으로 할 것인지 결정

3. WHERE : 해당 테이블에서 특정 조건을 만족하는 row 선별

4. GROUP BY : grouping 기준대로 로우를 grouping

5. HAVING : grouping 작업 후 생성된 그룹 중 특정 조건을 만족한는 그룹만 선별

6. ORDER BY : 각 row를 특정 기준에 정렬

7. LIMIT : ORDER BY 기준으로 상위 일부만 보여줌

 

GROUPING

 - SELECT 시에grouping 되지 않은 값을 넣으면 에러 발생됨

    COUNT 등과 같은 집계 함수는 가능하다.

 - WHERE 이라는 함수가 있지만 기존 colum 만 가능 하고 새로생성된  grouping 한 column은 적용되지 않기 때문에

    HAVING 이라는 함수로 선별한다.

SELECT 
SUBSTRING(address,1,2) as region,  -- 주소중 앞 2글자만
gender,                            
COUNT(*)
FROM member 
GROUP BY                           -- 조건1) 그루핑  
        SUBSTRING(address,1,2),    -- 주소 앞 2개 이므로 도시기준
        gender                     -- 성별
HAVING region IS NOT NULL          -- 조건2) grouping 중 NULL 포함 안하는 값만 선별
ORDER BY                              조건3)
        region ASC,                     -- 지역기준 오름차순
         gender DESC                     -- 성별기준 내림차순

  조건1) 주소 앞 2자리 (도시기준), 성별기준으로 grouping 진행

  조건2) region 에 NULL 값은 제외

  조건3) region 기준 오름차순 정렬후 같은 값은 gender 기준 내림차순 정렬

 

 

 

 

 

 

 

'Coding Study > 데이터베이스' 카테고리의 다른 글

Prisma /데이터베이스/ 3Tier의 개념  (2) 2025.05.22
[SQL] 기타 팁  (1) 2025.05.21
[SQL] 서브 쿼리  (0) 2025.05.21
[SQL] JOIN  (0) 2025.05.21
SQL 명령어 (CRUD 기준)  (0) 2025.05.19