스파르타 SQL 2주차

looggi·2022년 7월 6일
0
post-thumbnail

범주의 통계를 내주는 Group by

select name, count(*) from users
group by name;

위 쿼리가 실행되는 순서: from → where → group by → select →order by

  1. from users: users 테이블 데이터 전체를 가져옵니다.
    1-1. where문의 조건에 맞는 데이터만 남기고
  2. group by name: users 테이블 데이터에서 같은 name을 갖는 데이터를 합쳐줍니다.
  3. select name, count(): _name에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어줍니다. (select에 쓰여진 name, count() 두개의 column이 결과적으로 나타남)
  4. order by 필드의 순서대로 정렬됩니다. (!!결과물!!을 정렬)
select 범주별로 세어주고 싶은 필드명, count(*) from 테이블명
group by 범주별로 세어주고 싶은 필드명;

범주의 통계를 내주는 기타 함수들

합계: sum() 최솟값: min() 최댓값: max()
평균: avg() 반올림:round(avg(),0(소숫점 자릿수))
오름차순 정렬: order by 필드명
내림차순 정렬: order by 필드명 desc

select 범주가 담긴 필드명, min(최솟값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;

쿼리 짜는 순서

1) show tables로 어떤 테이블이 있는지 살펴보기
2) 제일 원하는 정보가 있을 것 같은 테이블에 select * from 테이블명 limit 10 쿼리 날려보기
3) 원하는 정보가 없으면 다른 테이블에도 2)를 해보기
4) 테이블을 찾았다! 범주를 나눠서 보고싶은 필드를 찾기
5) 범주별로 통계를 보고싶은 필드를 찾기
6) SQL 쿼리 작성하기!

별칭 기능: Alias

select payment_method, count(*) as cnt from orders o
where o.course_title = '앱개발 종합반'
group by payment_method

테이블 별칭은 테이블 뒤에
특정 테이블의 필드는 테이블 별칭.필드

profile
looooggi

0개의 댓글