#1 데이터 분석의 목적
👉 쌓여있는 날것의 데이터 → 의미를 갖는 '정보'로의 변환
- 통계: 최대 / 최소 / 평균 / 개수
- group by: 동일한 범주의 데이터를 묶어줌(ex. 성씨별로 몇 명의 회원이 있을까) => SQL에서 쿼리가 진행되는 순서를 아는 것이 매우 중요!
- order by: 깔끔하게 데이터를 정렬(ex. 내림차순, 오름차순 정렬)
#2 group by: ~별
1. 동일한 범주의 갯수 - count(*)
2. 동일한 범주에서의 최솟값 구하기 - min(필드명)
3. 동일한 범주에서의 최댓값 구하기 - max(필드명)
4. 동일한 범주의 평균 구하기 - avg(필드명) if, n번째까지 반올림하고 싶다면 round(avg(),n)
5. 동일한 범주의 합계 구하기 - sum(필드명)
#3 order by: 결과를 정렬(맨 마지막)
1. 오름차순 - 기본적으로 작은 순서대로 정렬, 안써줘도 되지만 asc
2. 내림차순 - order by count(*) desc
-> group by와 order by는 항상 같이 쓰이는 것이 아님, 오해 금지
#4 where와 함께 사용해보기
#5 group by에서 많이 발생하는 에러 대처하기
범주에 따른 통계치를 구하고 싶어 group by를 사용했지만, 통계치는 나오지 않고 소수의 데이터만 출력되는 경우가 많다
SELECT * from orders
group by payment_method
👉 범주별로 묶어달라는 명령어 (group by)는 작성해줬지만, 묶은 데이터를 '어떤 통계치'로 출력해달라는 명령어가 없기 때문에 '어떤 통계치로' 출력해달라는 명령어를 추가하면 됨
SELECT count(*) from orders
group by payment_method
👉 원하는 통계치가 나온 것 같지만 각각 어떤 범주에 대한 통계치인지는 나와있지 않으므로
SELECT payment_method, count(*) from orders
group by payment_method
#6 이외 유용한 문법
1. 별칭 - Alias: 쿼리가 길어지면 헷갈리기 때문에 필드명이나 테이블마다 별칭을 붙여주는 것
ex 1) SELECT * from orders o <- orders를 이제 o 라고도 하겠다는 뜻(보통 알파벳 하나 혹은 두개로 짧게 씀)
where o.course_title ='웹개발 종합반'
ex 2) SELECT payment_method, count(*) as cnt from orders o <- as 뒷부분으로 표시됨
[꿀팁] 이렇게 쿼리를 작성하면 편하다!
1) show tables로 어떤 테이블이 있는지 살펴보기
2) 제일 원하는 정보가 있을 것 같은 테이블에 select * from 테이블명 limit 10 쿼리 날려보기
3) 원하는 정보가 없으면 다른 테이블에도 2)를 해보기
4) 테이블을 찾았으면 범주를 나눠서 보고싶은 필드를 찾기
5) 범주별로 통계를 보고싶은 필드를 찾기
6) SQL 쿼리 작성하기
'디지털 역량' 카테고리의 다른 글
#3 웹 개발일지 (0) | 2022.09.26 |
---|---|
#3 SQL 개발일지 (0) | 2022.09.22 |
#2 웹 개발일지 (0) | 2022.09.21 |
#1 SQL 개발일지 (0) | 2022.09.18 |
#1 웹 개발일지 (0) | 2022.09.12 |