SQL - 집계, 정렬, 서브 쿼리

박선우·2023년 2월 4일
0

CS 스터디

목록 보기
36/53
post-thumbnail

🌼 집계, 정렬, 서브 쿼리

1️⃣ 집계

  • 여러 행으로부터 하나의 결괏값을 반환하는 함수
  • SELECT 구문에서만 사용가능
  • 주로 평균, 합, 최대, 최소등 구하는데 사용
USER이름나이
영희15
철수10
훈이25
철수30
  • 위 테이블로 가정

⛔️ 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 테이블 안에 있는 이름을 기준으로 그룹을 지어 총 나이 계산
이름나이
철수40
영희15
훈이25

2️⃣ 정렬 쿼리

  • order by를 사용해 asc(오름차순), desc(내림차순)

⛔️ ASC

SELET name, age FROM USER order by age (asc)
  • asc는 생략 가능
  • USER 테이블 안에 있는 age를 기준으로 오름차순으로 정렬 된다.
이름나이
철수30
훈이25
영희15
철수10

⛔️ DESC

SELET name, age FROM USER order by age desc
  • USER 테이블 안에 있는 age를 기준으로 내림차순으로 정렬 된다.
이름나이
철수10
영희15
훈이25
철수30

3️⃣ 서브 쿼리

  • 서브 쿼리는 하나의 SQL 문 안에 포함되는 또 다른 SQL 문을 의미
SELET name, age, (SELET MAX(age)FROM USER) as MaxAge FROM USER 
  • USER 테이블 안에 있는 가장 나이가 많은 사람을 찾고, USER 테이블 안에 있는 이름 나이와 나이가 가장 많은 사름을 보여준다.
이름나이MaxAge
철수1030
영희1530
훈이2530
철수3030
profile
코린이 열심히 배우자!

0개의 댓글