티스토리 뷰

기능

 

데이터를 검색할 때, 공통 그룹의 정보를 확인 및 필터링할 때 사용한다.

 

기본 형식

 

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

해석:

  1. 나스닥 회사의 'sector' 를 검색한다.
  2. 'sector'를 그룹화한다. 

 

1.2. 2개 이상의 열 기준으로 그룹화

SELECT sector, industry FROM nasdaq_company
GROUP BY sector, industry

해석:

  1. 나스닥 회사의 'sector' 와 'industry'를 검색한다.
  2. 'sector'와 'industry'를 그룹화한다. 

 

1.3. COUNT로 그룹화한 열의 데이터 개수 확인

SELECT sector, COUNT(*) AS cnt FROM nasdaq_company
GROUP BY sector

해석:

  1. 나스닥 회사의 'sector'와 해당 열의 카운트(갯수)를 검색한다.
  2. 'sector'를 그룹화 한다. 

 

2. HAVING 문으로 그룹화 한 데이터를 필터링

 

2.1. 그룹화한 데이터에서 특정 값을 갖는 그룹만 필터링

SELECT sector, industry FROM nasdaq_company
GROUP BY sector, industry
HAVING industry = 'Advertising'

해석: 

  1. 나스닥 회사의 'sector', 'industry'를 검색한다.
  2. 'sector', 'industry' 를 그룹화한다. 
  3. industry 열의 'Adcertising' 값만 가지는 데이터만 필터링한다.

 

2.2. 그룹화에 사용한 열 기준으로 데이터 필터링

SELECT sector, industry, COUNT(*) AS cnt FROM nasadaq_company
GROUP BY sector, industry
HAVING industry = 'Advertising'
and COUNT(*) >10

해석:

  1. 나스닥 회사의  'sector', 'industry', 해당 열의 COUNT를 검색한다.
  2. 'sector', 'industry'를 그룹화한다.
  3. 'industry'의 'Advertising'이 포함된 값만 필터링한다.
  4. 그리고 COUNT가 10 이상인 값만 필터링한다. 

 

3. DISTINCT 문으로 중복 데이터 제거

 

지정한 열의 중복 데이터를 제거하는 기능을 한다. 

 

3.1. 기본 형식

SELECT DISTINCT [열 이름] FROM [테이블 이름]

 

3.1.2. 특정 열의 중복 데이터 제거

SELECT DISTINCT sector, industry FROM nasdaq_company

해석:

  1. 나스닥 회사의 'sector', 'industry'를 중복을 제외하고 검색한다.

참고

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함