걷기 시작한 Coding Novice

group by 5

별칭을 사용하여 group by, order by, where 연습해보기

네이버 이메일을 사용하여 앱개발 종합반을 신청한 주문의 결제수단별 주문건수 세어보기 실습으로 위의 내용을 도출하기 위해 작성해보기 연습을 해보자. 우선 어느 테이블이 해당 내용의 데이터를 뽑아내는데 적절한지 살펴보자. select * from orders orders테이블이 적당한 것 같다. 추가로 앱개발 종합반을 신청한 부분만 필요하니, where문구로 선택해주자. select * from orders o where o.course_title = '앱개발 종합반' 이후 결제수단별로 묶어 주는게 좋겠지? select * from orders o where o.course_title = '앱개발 종합반' group by payment_method 이제 naver를 사용하는 email 것들로만 추려보자. 아..

SQL 2022.05.22

Group by, Order by 연습해보기

이제 예제를 가지고 조금 연습을 추가로 해볼꺼다. 예제는 다음과 같다. (1) 앱개발 종합반에 결제 수단별 주문건수. (2) Gmail을 사용하는 성씨별 회원수 세어보기. (3) Course_id별 ‘오늘의 다짐’에 달린 평균 like 개수 구해보기. (1) 앱개발 종합반에 결제 수단별 주문건수. 주문건수니까 count를 활용하려나? show tables로 살펴보니 테이블은 orders를 활용해야 할꺼 같다. 일단 orders 테이블을 불러오자. select * from orders 결제 수단별이니까 group by로 결제수단별로 묶어주었다. select * from orders group by payment_method 앱개발 종합반만 남겨기위해 where을 사용해주었고 select * from ord..

SQL 2022.05.11

group by 사용할 때 자주 하는 실수

가장 자주하는 실수? 오류? 를 한번 짚고 넘어가자. 범주에 따른 통계치를 구하고 싶어 group by를 사용해 보았는데.. select * from orders group by payment_method 하지만, 통계치는 나오지 않고 4개의 데이터만 출력된 것을 알 수 있다. group by로 묶어 주긴 했지만 무엇을 통계내라는 건지 명령이 없어서 이렇게 나온다. 그래서 대표적으로 하나씩 보여준 것이다. 몇 개의 값이 있는지에 대한 명령을 넣어보자. select count(*) from orders group by payment_method payment_method라는 범주를 group by로 묶어주었으나, 첫번째 줄에서 그저 세기만 하라고 명령을 내려서 구분이 안된다. 그러면? 아! 범주를 첫번째 ..

SQL 2022.05.05

group by 사용해보기

범주의 통계를 내주는 group by 성씨별로 몇 명의 회원이 있는지 알아보자. 성씨별로 몇 명이 회원이 있는지 구하려고 where 절을 사용해서 수십개의 쿼리를 작성하는 것은 너무 비효율적이다. 이 문제를 group by를 사용해서 바로 해결이 가능하다. select name, count(*) from users group by name 성씨별로 카운터가 되어지며 맨 아래 숫자를 확인하면 54개의 성씨가 있다는 정보도 알 수 있다. 여기서 SQL 쿼리가 실행되는 순서 select name, count(*) from users group by name​ 위 쿼리가 실행되는 순서는 from → group by → select 1. from users : users 테이블 데이터 전체를 가져온다 2. gro..

SQL 2022.05.05

group by, order by 가 뭔데? (통계 관련 최대 / 최소 / 평균 / 개수)

데이터베이스 테이블에 저장된 데이터는 쌓여있는 날 것의 데이터이다. 쌓여있는 날 것의 데이터를 뽑아 썻다면, 이후에는 이를 가지고 의미를 갖는 '정보'로 변환하여 데이터베이스 테이블에 저장된 데이터를 사용할꺼다. 예를들어 가장 많은 like를 받은 사람의 이름, 전체 신청자수, 평균 연령 등은 의미있는 '정보'이다. (더 나아가면 범주(category) 각각의 정보가 궁금할 수 있다) 우선 과목별 신청자수를 구한다고 한다면? select count(*) from orders where course_title = '앱개발 종합반' select count(*) from orders where course_title = '웹개발 종합반' 총 두 개의 과목이 있으니, 두 개의 쿼리를 작성해서 각각 위의 사진처럼..

SQL 2022.05.05