2주차에서는 동일한 범주의 데이터를 묶어서 효과적으로 통계를 내주는 쿼리문을 짤 수 있었다.
GROUP BY
Q : 성씨별로 회원수를 GROUP BY로 묶어서 데이터 가져오기
A :
SELECT name, count(*) FROM users
GROUP BY name;
- SELECT 과 FROM 사이에는 뽑아볼 필드를 작성해준다
- GROUP BY name 으로 필드에서 동일한 값을 데이터를 하나로 합쳐준다.
- count(*)는 GROUP BY로 합쳐진 데이터의 개수를 카운팅해준다.
조금 더 나가보면
동일한 범주에서 최솟값을 구해보자
SELECT week, min(likes) FROM checkins
GROUP BY week;
SELECT 범주가 담긴 필드명, min (필드명) FROM 테이블명
GROUP BY 범주가 담긴 필드명;
==> 동일한 범주 특정 필드의 최솟값은 min(필드명)을 적어 쿼리를 짠다.
==> 평균값은 avg(필드명)
==> 합계는 SUM(필드명)
ORDER BY
ORDER BY를 사용하면 한번에 정렬 가능
SELECT name, count(*) FROM users
GROUP BY name
ORDER BY count(*);
==> 갯수 count(*) 을 기준으로 정렬
SELECT name, count(*) FROM users
GROUP BY name
ORDER BY count(*) desc;
SELECT * FROM 테이블명
ORDER BY 정렬의 기준이 될 필드명;
==> desc 는 내림차순을 의미 // asc는 오름차순을 의미
ALIAS
ALIAS = 별칭
SELECT payment_method, count(*) AS cnt FROM orders o
WHERE o.course_title = '앱개발 종합반'
GROUP BY payment_method
==> AS(=ALIAS) 로 원하는 별칭을 부여
'SQL' 카테고리의 다른 글
SQL 공부 💡 4주차 SUBQUERY 서브쿼리 with절 case문 (0) | 2023.06.03 |
---|---|
SQL 공부 시작 3주차💡 MYSQL JOIN문 INNER JOIN LEFT JOIN ISNULL (0) | 2023.06.03 |
SQL 공부 시작 1주차💡 MYSQL SELECT문 쿼리 (0) | 2023.06.01 |