🌼 집계, 정렬, 서브 쿼리
1️⃣ 집계
여러 행으로부터 하나의 결괏값을 반환하는 함수
SELECT 구문에서만 사용가능
주로 평균, 합, 최대, 최소등 구하는데 사용
⛔️ COUNT
SELET COUNT(*) FROM USER
-------------------------
SELET COUNT(DISTINCT name) FROM USER
USER 테이블 안에 있는 유저 유저 총 갯수를 반환(총 유저), 중복된 값도 COUNT한다. => 4
DISTINCT 쓰면 중복 제거 가능, 같은 이름은 COUNT하지 않는다. => 3
⛔️ 평균(avg)
SELET AVG(age) FROM USER
USER 테이블 안에 있는 유저들의 평균 나이를 구할 수 있다. => 20
NULL 값이 있다면 NULL값은 빼고 계산
⛔️ 합계(sum)
SELET SUM(age) FROM USER
USER 테이블 안에 있는 유저들의 나이의 총 합을 구함 => 80
NULL 값이 있다면 NULL값은 빼고 계산
⛔️ 최소값,최댓값(MIN,MAX)
SELET MIN(age) FROM USER
-------------------------
SELET MAX(age) FROM USER
MIN = USER 테이블 안에 있는 가장 작은 나이를 구한다.=> 10
MAX = USER 테이블 안에 있는 가장 큰 나이를 구한다. => 30
⛔️ Group By
SELET name, SUM(age) FROM USER group by name
USER 테이블 안에 있는 이름을 기준으로 그룹을 지어 총 나이 계산
2️⃣ 정렬 쿼리
order by를 사용해 asc(오름차순), desc(내림차순)
⛔️ ASC
SELET name, age FROM USER order by age (asc)
asc는 생략 가능
USER 테이블 안에 있는 age를 기준으로 오름차순으로 정렬 된다.
⛔️ DESC
SELET name, age FROM USER order by age desc
USER 테이블 안에 있는 age를 기준으로 내림차순으로 정렬 된다.
3️⃣ 서브 쿼리
서브 쿼리는 하나의 SQL 문 안에 포함되는 또 다른 SQL 문을 의미
SELET name, age, (SELET MAX(age)FROM USER) as MaxAge FROM USER
USER 테이블 안에 있는 가장 나이가 많은 사람을 찾고, USER 테이블 안에 있는 이름 나이와 나이가 가장 많은 사름을 보여준다.
이름 | 나이 | MaxAge |
---|
철수 | 10 | 30 |
영희 | 15 | 30 |
훈이 | 25 | 30 |
철수 | 30 | 30 |