IT recording...
[Database] 5. Mysql SELECT 추가 문법 (group by, count, join 등) 본문
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정보가 아래와 같을 때
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
++참고 블로그
'Database' 카테고리의 다른 글
[Python] 파이썬 기본 문법 정리 - Lambda함수, 정규표현식 등 (0) | 2021.02.14 |
---|---|
[Python] 파이썬 기본 문법 정리 - List, Tuple, Dictionary, Set (0) | 2021.02.10 |
[Database] 4. 파이썬을 이용한 Data 크롤링 (BeautifulSoup 사용) (0) | 2021.02.08 |
[Database] 3. Foriegn Key 등 (0) | 2021.02.06 |
[Database] 2. pymysql , pandas 사용하기 (0) | 2021.02.06 |
Comments