ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MySQL] 수업 2주차 - Group by, Order by, Where
    데이터 공부하기 2022. 8. 1. 22:04

    [1주차 수업 목표]

     

    1. 동일한 범주의 데이터를 묶어서 통계를 내주는 Group by를 이해한다. (count(*)을 가장 많이 활용함!)
    2. 출력하는 데이터를 필드의 값으로 정렬하여 출력하는 Order by를 익힌다.
    3. 조금 더 복잡한 분석을 위해 자주 사용되는 유용한 문법을 익힌다.

    [범주의 통계를 내주는 Group by]

    Group by 적는 순서:

    1. select * from users group by name 먼저 : users 테이블에서 name을 묶어서 보여줘

    2. name, count(*) 추가 : users 테이블에서 name으로 묶은걸 count해서 보여줘 

     

     

    [깔끔한 정렬이 필요할 땐? Order by]

    • select name, count(*) from users group by name order by count(*);
    • 갯수 (count(*) 값)을 기준으로 정렬해달라는 뜻

    order by는 group by랑 무조건 함께 써야하나?

    • 아니다
    • 정렬은 맨 마지막에!

    order by는 숫자 정렬만 되나?

    • 아니다, 문자열도 됨! 시간으로도 됨!
    • select * from users order by email;

     

    [Group by, Order by 와 Where 절을 함께 쓰는 경우]

     

    1. Question: 웹개발 종합반의 결제수단별 주문건수 세어보기

    • Select > Where > Group by(마지막에)

    • Select > Where > Group by > Oder by(마지막에)

    [2주차 문법 정리]

    Group by select name, count(*) from users group by name; 위 쿼리가 실행되는 순서: from → group by → select 성씨별로 몇 명이 회원이 있는지 구하려고 where 절을 사용해서 수십개의 쿼리를 작성하는 것은 너무 비효율적입니다. 이 문제를 Group by를 사용
    Min SELECT week, min(likes) from checkins c 
    group by week 
      동일한 범주 특정 필드의 최솟값은 min(필드명)을 사용해서 해요
    Max SELECT week, max(likes) from checkins c 
    group by week 
       
    Avg SELECT week, avg(likes) from checkins c 
    group by week 
    소수점 반올림시!
    Round( *, 소수점 갯수)
     - 그냥 반올림 시 '0'

    Sum SELECT week, sum(likes) from checkins c 
    group by week 
       
    Order by select name, count(*) from users group by name order by count(*);

       
    desc select name, count(*) from users group by name order by count(*); desc   내림차순 정렬시 마지막에 desc(descending)
    asc select name, count(*) from users group by name order by count(*); asc   오름차순 (할필요 없음, 기본이 오름차순이라..)

    [Group by 실수 정리!]

    1. 뭘 통계 내는지 안 적음! > Count (*) 추가

    2.   확인하려는 범주 값이 안들어감! > payment_method, count(*)로 표기

    [쿼리 작성 꿀팁!]

    1) show tables로 어떤 테이블이 있는지 살펴보기

    2) 제일 원하는 정보가 있을 것 같은 테이블에 select * from 테이블명 limit 10 쿼리 날려보기

    3) 원하는 정보가 없으면 다른 테이블에도 2)를 해보기

    4) 테이블을 찾았다! 범주를 나눠서 보고싶은 필드를 찾기

    5) 범주별로 통계를 보고싶은 필드를 찾기

    6) SQL 쿼리 작성하기!

Designed by Tistory.