SQL _Group by, Order by, Alias

libramin·2022년 8월 27일
0

SQL

목록 보기
2/5
post-thumbnail

Group by

동일한 범주의 데이터를 묶는다.

select grade, count(*) from students
group by grade
//학생 테이블에서 grade별로 묶고 옆에 갯수를 보겠다.
  • 통계 : 갯수, 최소, 최대, 평균, 반올림, 합계
    count min max avg round
//갯수
select level, count(*) from subjects
group by level 
//과목 테이블에서 수준별로 묶고 각 갯수를 보겠다.

//최소값
select week, min(likes) form checkins
group by week
//checkins테이블에서 주차별로 묶고 각 주차의 최소 좋아요 값을 보겠다.

//최댓값
select week, max(likes) form checkins
group by week
//checkins테이블에서 주차별로 묶고 각 주차의 최대 좋아요 값을 보겠다.

//평균값
select week, avg(likes) form checkins
group by week
//checkins테이블에서 주차별로 묶고 각 주차의 평균 좋아요 값을 보겠다.

//반올림
select week, round(avg(likes),2) form checkins
group by week
//checkins테이블에서 주차별로 묶고 각 주차의 평균 좋아요 값을 소숫점 두자리까지만 보겠다.

//합계
select week, sum(likes) form checkins
group by week
//checkins테이블에서 주차별로 묶고 각 주차의 좋아요 총 합을 보겠다.

Order by

  • 정렬: 오름차순 (defalut: asc), 내림차순 (desc)
    날짜, 문자열, 숫자 정렬 가능
select * from users
order by email
//users테이블에서 이메일 오름차순으로 정렬

select * from users
order by created_at desc
//users테이블에서 생성날짜 내림차순으로 정렬

select name, count(*) from users 
group by name
order by count(*)
//users테이블에서 name필드별로 묶어 갯수를 보여줄 때, 오름차순 정렬

select name, count(*) from users 
group by name
order by count(*) desc
//users테이블에서 name필드별로 묶어 갯수를 보여줄 때, 내림차순 정렬

여러가지 함께 쓰기 (복습)

select name, count(*) from users
where email likes '%gmail.com'
group by name
//gmail을 사용하는 유저를 성씨별로 묶고 갯수를 보겠다.

select course_id, round(avg(likes),2) from checkins
group by course_id
//checkins테이블에서 courseId별로 묶고, 좋아요 평균을 소숫점 2자리까지만 보겠다.

select payment, count(*) from orders
where course_title = '토익'
group by payment
order by count(*) desc
//토익 수업 주문자를 결제수단별로 묶고 갯수를 내림차순으로 정렬

별칭 붙이기

  • Alias
    각 테이블명에 별칭을 붙일 수 있다.
    필드명을 as를 사용하여 원하는대로 변경하여 출력 가능하다.
select o.payment, count(*) as cnt from orders o
where o.email likes '%gmail.com' and o.course_title = '앱개발종합반'
group by o.payment desc

//orders 테이블에 별칭은 o
//gmail을 사용하면서 앱개발종합반을 신청한 주문의 결제수단별 주문건수를 내림차순으로 정렬
//count를 보여주는 필드명은 cnt로 출력
profile
Hello, I'm libramin!

0개의 댓글