| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- 컴파일
- 프로그래머스
- java최솟값구하기
- 노베이스부트캠프
- java set 출력
- 격파르타합격후기
- java알고리즘
- sqld자격증합격
- 프로그래머스제일작은수
- 격파르타후기
- 작은수제거하기
- java map 저장
- java참조자료형
- 격파르타비전공자
- java map
- java알고리즘문제풀이
- 항해15기
- javaJRE
- java list 저장
- java map 출력
- 항해99후기
- javaJVM
- java기본자료형
- java set 저장
- 인터프린터언어
- 코딩부트캠프후기
- 격파르타장점
- java list 출력
- java 자료구조 활용
- 비전공자sqld
- Today
- Total
코딩과 결혼합니다
SQL - Group by, Order by 본문
데이터 분석의 목적 : 쌓여있는 날것의 데이터 ➡️ 의미를 갖는 '정보'로의 변환
통계 구하기 : 기존 방법의 한계 ➡️ 동일한 범주의 데이터를 묶어주는 Group by
➡️ 깔끔하게 데이터를 정렬 해주는 Order by
(성씨별 회원수 와 같이 여러 번의 쿼리를 작성하기 힘들 때)
범주의 통계를 내주는 Group by
-성씨별로 몇 명의 회원이 있는지 구하려고 Where 절을 사용해서 수십개의 쿼리를 장성하는 것은 너무 비효율적이다.
이 때는 Group by를 사용하여 해결한다.
SQL 쿼리가 실행되는 순서

1) "from users" users 에서
2) "group by name" name 으로 묶고
3) "name, count(*)" name으로 묶은 것과, 묶은 것의 count를 하나씩 해서 보여줌.

Group by 기능 알아보기
동일한 범주의 개수 구하기
동일한 범주의 갯수는 count(*)를 사용

동일한 범주에서의 최솟값 구하기
최솟값은 min(필드명)을 사용

동일한 범주에서의 최댓값 구하기
최댓값은 max(필드명)을 사용

동일한 범주의 평균 구하기
평균값은 avg(필드명)을 사용

동일한 범주의 합계 구하기
합계는 sum(필드명)을 사용

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

-오름차순 정렬


-내림차순 정렬


- 반올림
select course_id, round(avg(likes)) from checkins
group by course_id
Order by 제대로 알아보기: SQL 쿼리가 실행되는 순서

➡️ 위 쿼리가 실행되는 순서: from → group by → select → order by
Where와 함께 사용해보기
- Where절로 조건이 하나 추가되고, 그 이후에 Group by, Order by가 실행

➡️ 위 쿼리가 실행되는 순서: from → where → group by → select
- from orders: users 테이블 데이터 전체를 가져옵니다.
- where course_title = "웹개발 종합반": 웹개발 종합반 데이터만 남겨줍니다.
- group by payment_method: 같은 payment_method을 갖는 데이터를 합쳐줍니다.
- select payment_method, count(*): payment_method에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어줍니다.
- 예) CARD, CARD, kakaopay 이렇게 데이터가 있었다면, CARD는 2개, kakaopay는 1개겠죠!
* order by는 숫자 뿐만 아니라 영어, 한글, 시간 순으로도 정렬이 가능하다.
이외 유용한 문법
별칭 기능 : Alias
: 쿼리가 점점 길어지면서 종종 헷갈리는 일이 생길 수 있다. 그래서 SQL은 Alias라는 별칭 기능을 지원한다.
'2세 > SQL' 카테고리의 다른 글
| SQL - Join, Union (0) | 2023.06.03 |
|---|---|
| SQL - Select, Where (0) | 2023.06.01 |