IT recording...

[Database] 5. Mysql SELECT 추가 문법 (group by, count, join 등) 본문

Database

[Database] 5. Mysql SELECT 추가 문법 (group by, count, join 등)

I-one 2021. 2. 8. 20:59

1. 연산 문법들

  • COUNT()
  • SUM()
  • AVG()
  • MAX()
  • MIN()

+ GROUP BY 컬럼이름 : 위의 것들과 함께 사용하면 그룹 지어서 사용 가능하다.

+ HAVING : 위의 것들의 결과의 조건 비교시

 

EX)

-- items 테이블에서 판매자별로 아이템 수 내림차순 정리
select provider, count(*) from items group by provider order by count(*) desc;

-- HAVING
-- 판매자의 아이템이 100개 이상인 판매자만 찾기
select provider from items group by provider having count(*) >= 100;

image.png](attachment:image.png)

+ DISTINCT : 중복된 값 출력 X

+ AS : 이름 변경

 

-- DISTINCT
select distinct gender from people

-- AS
select count(*) as total_count from people 

 

2. JOIN

1) Inner Join

--> 두 테이블의 일치하는 정보가 없으면 나타내지 않는다.

 

- table정보가 아래와 같을 때

items
ranking

 

ex) 전체 베스트 상품에서 판매자별 베스트상품 갯수 출력해보기

select * from items 
inner join ranking on ranking.item_code = items.item_code 
where ranking.main_category = "ALL";

 

ex) 카테고리가 패션의류인 베스트 상품에서 판매자별 베스트 상품 갯수가 5개 이상인 판매자와 베스트 상품 갯수 출력하기

select items.provider, count(*) 
from items inner join ranking on items.item_code = ranking.item_code 
where ranking.main_category='패션의류' 
group by provider 
having count(*) >= 5 order by desc;

ex) 카테고리가 화장품/헤어인 베스트 상품의 평균,최대,최소 가격 출력하기

select avg(items.dis_price),max(items.dis_price),min(itmes.dis_price) from items 
inner join ranking on items.item_code = ranking.item_code 
where ranking.main_category = '화장품/헤어';

 

2) Outer Join

--> left outer join : 왼쪽 테이블을 기준으로 테이블을 매칭한다.

 

--> right outer join

 

3. 서브쿼리

- 테이블간 검색시 검색 범위 좁히기 가능

 

ex) 할인 가격이 10만원 이상인 상품이 몇개 있는지 출력하기

-- inner join
select ranking.main_category, count(*)
from ranking 
inner join items on ranking.item_code = items.item_code
where items.dis_price >= 100000
group by ranking.main_category

-- sql sub쿼리
select main_category, count(*)
from ranking
where item_code in (select item_code from items where dis_price >= 100000)
group by main_category

 

++참고 블로그

dinggur.tistory.com/104

 

SQL정리 7장 서브쿼리

서브쿼리      select     (select ...)  ← 스칼라 서브쿼리      from       (select ...)   ← 인라인 뷰      where sal > (select ...)  ← 서브쿼리 ※ 주의 ! 서브쿼리 사용..

dinggur.tistory.com

stricky.tistory.com/265

 

sql 독학 강의 # sub query 서브쿼리 16편 -sTricky

sql 독학 강의 # sub query 서브 쿼리 16편 -sTricky 콘텐츠 index 0. 서브 쿼리 종류 1. 스칼라 서브 쿼리 (Scalar Subquery) 2. 인라인 뷰 (Inline view) 3. 서브쿼리 4. join으로 표현하기 ## 전편 강의 보러..

stricky.tistory.com

 

Comments