#집약함수
count | 행 개수를 계산 |
sum | 합계 |
avg | 평균 |
max | 최댓값 |
min | 최솟값 |
count
select count(*) from [테이블 명];
→ NULL을 포함한 모든 행의 개수를 세어줍니다.
→ 별표 대신에 특정 열의 이름을 넣어줄 수 도 있다. 이때에는 NULL은 제외시킵니다.
select count(*) from nameoftable;
distinct를 사용하여 특정 열에서 고유값의 개수가 몇 개인지 알 수도 있습니다
select count(distinct(col_1)) from nameoftable;
sum
select sum([열 이름1]), sum([열 이름2]) from [테이블 명];
→ 열 이름1과 열 이름2에 해당하는 행의 합을 각각 보여줍니다.
select sum(col_1), sum(col_2) from nameoftable;
avg
select avg([열 이름]) from [테이블 명];
→ 사용법은 sum과 동일합니다.
select avg(col_1) from nameoftable;
max와 min
select max([열 이름1]), min([열 이름2]) from[테이블 명];
select max(col_1), min(col_2) from nameoftable;
#그룹화
select [열 이름1], [열 이름2], ··· from [테이블 명] group by [열 이름1], [열 이름2], ···;
→ group by 뒤에 적은 열을 기준으로 그룹화하게 됩니다.
→ group by 뒤에 2개 이상의 열을 쓰면 더 그룹이 세분화하게 됩니다.
select count(*) from nameoftable group by col_1;
count를 통해서 그룹화된 결과를 볼 수 있습니다.
그러나 이렇게 되면 각각의 count가 어느 그룹인지를 알기 어렵습니다.
select col_1, count(*) from nameoftable group by col_1;
select에 col_1을 추가 시킴으로써 그룹별 개수를 확인할 수 있습니다.
#where구를 이용한 그룹화
group by 이전에 where 구를 추가하여 where 조건에 해당하는 것만 그룹화할 수 있습니다.
select [열 이름], count(*) from [테이블 명] where [조건] group by [열 이름];
select col_1, count(*) from nameoftable where col_2 > 3000 group by col_1
→ where구 적용후 그룹화
#having구를 이용한 그룹화
group by로 나온 결과에서 조건을 추가할때에는 where 대신 having구를 사용합니다.
select col_1, avg(col_3) from nameoftable group by col_1 having avg(col_3) > 2500
→그룹화 후 having구 적용
#order by
오름차순이나 내림차순으로 정렬하고자 할때에는 order by 구를 사용할 수 있습니다.
select [열 이름1], [열 이름2], ··· from [테이블 명] order by [재정렬 기준 열 1], ···;
select * from nameoftable order by col_1;
→col_1을 기준으로 오름차순으로 정렬되어 보여준다.
내림차순으로 보고싶으면 col_1뒤에 desc를 입력하면된다.
select * from nameoftable order by col_1 desc;
'파이썬으로 퀀트 프로그램 만들기 project > MySQL' 카테고리의 다른 글
MySQL - error code: 1175, safe update 모드 해제 방법 (0) | 2023.07.27 |
---|---|
MySQL - 산술함수 (0) | 2023.07.27 |
MySQL 기초 - 뷰 와 서브쿼리 (0) | 2023.07.19 |
MySQL 기초 - select, where, distinct, 비교 연산자 (0) | 2023.07.17 |
MySQL 기초 - database 생성 및 삭제, table 생성, 삭제, 수정 (0) | 2023.07.17 |