티스토리 뷰
기능
데이터를 검색할 때, 공통 그룹의 정보를 확인 및 필터링할 때 사용한다.
기본 형식
SELECT [열] FROM [테이블] WHERE [열] = [조건값] GROUP BY [열] HAVING [열] = [조건값]
GROUP BY: 데이터를 그룹화하는 구문
[열]: 그룹화 기준의 열 이름을 지정, 1개 이상 그룹화 가능
[HAVING]: WHERE 와 비슷한 기능을 하며 그룹화된 결과의 필터링 기능을 수행
[조건값]: HAVING 필터에 적용할 조건값을 입력
활용
1. GROUP BY 문으로 데이터를 그룹화
1.1. 1개 열 기준으로 그룹화
SELECT sector FROM nasdaq_company
GROUP BY sector
해석:
- 나스닥 회사의 'sector' 를 검색한다.
- 'sector'를 그룹화한다.
1.2. 2개 이상의 열 기준으로 그룹화
SELECT sector, industry FROM nasdaq_company
GROUP BY sector, industry
해석:
- 나스닥 회사의 'sector' 와 'industry'를 검색한다.
- 'sector'와 'industry'를 그룹화한다.
1.3. COUNT로 그룹화한 열의 데이터 개수 확인
SELECT sector, COUNT(*) AS cnt FROM nasdaq_company
GROUP BY sector
해석:
- 나스닥 회사의 'sector'와 해당 열의 카운트(갯수)를 검색한다.
- 'sector'를 그룹화 한다.
2. HAVING 문으로 그룹화 한 데이터를 필터링
2.1. 그룹화한 데이터에서 특정 값을 갖는 그룹만 필터링
SELECT sector, industry FROM nasdaq_company
GROUP BY sector, industry
HAVING industry = 'Advertising'
해석:
- 나스닥 회사의 'sector', 'industry'를 검색한다.
- 'sector', 'industry' 를 그룹화한다.
- industry 열의 'Adcertising' 값만 가지는 데이터만 필터링한다.
2.2. 그룹화에 사용한 열 기준으로 데이터 필터링
SELECT sector, industry, COUNT(*) AS cnt FROM nasadaq_company
GROUP BY sector, industry
HAVING industry = 'Advertising'
and COUNT(*) >10
해석:
- 나스닥 회사의 'sector', 'industry', 해당 열의 COUNT를 검색한다.
- 'sector', 'industry'를 그룹화한다.
- 'industry'의 'Advertising'이 포함된 값만 필터링한다.
- 그리고 COUNT가 10 이상인 값만 필터링한다.
3. DISTINCT 문으로 중복 데이터 제거
지정한 열의 중복 데이터를 제거하는 기능을 한다.
3.1. 기본 형식
SELECT DISTINCT [열 이름] FROM [테이블 이름]
3.1.2. 특정 열의 중복 데이터 제거
SELECT DISTINCT sector, industry FROM nasdaq_company
해석:
- 나스닥 회사의 'sector', 'industry'를 중복을 제외하고 검색한다.
참고
'SQL' 카테고리의 다른 글
[SQL] SQL Server 에서 다루는 자료형 모음 (0) | 2023.06.11 |
---|---|
[SQL] 데이터베이스, 테이블을 생성, 삭제, 수정 (0) | 2023.06.07 |
[SQL] 와일드카드로 문자열 검색하기,LIKE (지루함 주의) (2) | 2023.06.05 |
[SQL] ORDER BY (1) | 2023.06.04 |
[SQL] WHERE (0) | 2023.06.04 |