1. 집계함수
- 열이 개수 합계, 평균 등을 계산하는 함수
- 특정 그룹별로 그 수치를 알아보는데 사용함.
select max(close_) as 최고가, min(close_) as 최소가, avg(close_) as 평균가
from StockPrice
where id = 40853
- ID 값이 40853인, 삼성전자의 최고가, 최소가, 평균가 알아보기
- as : 추출한 열에 이름을 붙이는 방법
2. 데이터 그룹화(group by)
- select 문에서 group by절을 사용
SQL문에서 from절과 where 절 뒤에 오며 행동을 그룹화함.
select column_name(s)
from table_name
where condition
group by column_name(s)
-> 성별, 지역, 회사, 본부 등의 그룹을 정확히 나눌 수 있는 것으로 지정해야 함.
select ID
, max(close_) as 최고가, min(close_) as 최소가, avg(close_) as 평균가
, count(close_) as 거래일수
from stockprice
group by ID
order by 거래일수
- 거래일수 작은 순서에서 큰 순서로 정렬됨
- 칼럼에 대한 ALIAS는 order by 절에서 사용 가능
-> 거래일수라는 이름을 사용하여 오름차순으로 정렬
select city
, sum(employees)as 고용인
, max(employees) as 최대고용
, count(*) as 회사수
from companyinfo
group by City
order by 고용인 DESC
3. having
- group by에서 나온 결과 중에서 원하는 조건에 부합하는 결과만 보고 싶을 떄 사용함.
- 무조건 group by 절과 함께 사용
- 조건은 where 절에 기술하지만 having 집계함수로 조건을 필터링할 때 사용
=> group by를 통해, 지정한 그룹의 집계 특성에 조건을 부여해서 결과를 봄.
select column_name(s)
from table_name
where condition
group by column_name(s)
having condition
select city
, sum(employees)as 고용인
, max(employees) as 최대고용
, count(*) as 회사수
from companyinfo
group by City
having sum(employees) >= 2000000
order by 고용인 DESC
order by 고용인, => order by sum(employees)
고용인이 sum(employees)의 ALIAS이기 때문.
order by에는 필드, 집계함수 등 모두 사용 가능함.
https://www.youtube.com/watch?v=OV-cPZKn1mU&list=PL1VTPqi5Xgu9pr3oK_j4ranMGEn6fKMFp&index=4
'SQL' 카테고리의 다른 글
MS SQL 실무_6편 (0) | 2022.06.21 |
---|---|
MS SQL 실무_5편 (0) | 2022.06.15 |
MS SQL 실무_4편 (0) | 2022.06.06 |
MS SQL 실무_2편 (0) | 2022.05.21 |
MS SQL 실무1 (0) | 2022.05.14 |
댓글