중급SQL 1일차(2)

김영목·2021년 7월 31일
0

SQL

목록 보기
2/3

현업에서 우리가 다루는 데이터들은 테이터셋의 전체 데이터가 아닌 어떤 특정 집단의 데이터 군집이다.

  1. group by

select SupplierID, AVG(price)
from Products
GROUP BY SupplierID(공급자 고유번호가 기준)
또는

select SupplierID, CategoryID, max(price)
from Products
group by SupplierID

만약에 내가 먼가 오름차순 혹은 내림차순으로 데이터를 보고싶을 경우 order by를 사용해서 정렬하고 싶은 데이터 이름 그리고 desc 혹은 asc를 넣으면 된다.

만약에 이렇게 평균값이 나타나 있는 테이블에서 100이상인 값만 보고 싶다면 어떻게 해야할까????
우리가 초급과정에서 배운대로 데이터를 가공하기전이라면 where price >= 100이 적용 가능하지만 그렇지 않고 평균값들에서 100이상인 값을 구한다면 having avg(price) >= 100으로 작성해야 한다.

조금 더 다양하게 보자면 having이 중요하다

앞서 having max(price) >= 100을 사용한 것처럼 내가 만약 위의 조건에서 CategoryID가 1인 것들만 보고 싶으면 어떻게 해야할까? 이때 역시 having을 써서 나타내면 된다 having CategoryID = 1

profile
안녕하세요 김영목입니다.

0개의 댓글