미소를뿌리는감자의 코딩

[항해99 SQL] 2주차 본문

강의수강/[SQL]

[항해99 SQL] 2주차

미뿌감 2024. 1. 25. 21:05
728x90

group by

select name, count(*) from users

group by name;

name 으로 묶은 group을 만든 뒤, count로 몇개인지 세는 것을 의미한다.

처음에는 별로 와닿지 않았지만, 쓰면 쓸수록 잘 이해 되었다.

 

여기서 count(*) 가 아닌 다르게 쓰일 수도 있다.

만약 likes개수의 avg, min, max, sum를 구하고 싶다면, 이 대신에

avg(likes), min(likes), max(likes), sum(likes)이런식으로 작성하면 된다.

 

만약 avg(likes) 를 하면 소수점 자리들이 조금 지저분하게 느껴질 수 있다.

이럴 때에는 round를 이용하면 된다.

round(avg(likes), 1) 이렇게 작성하면 된다.

1 은 첫 번째 자리수 까지를 의미하므로, 2, 3, 등등 원하는대로 적으면 된다.

 

 

order by

select * from checkins

order by likes desc;

 

만약 정렬하고 싶을 땐, 마지막에 order by를 적어주면 된다.

default는 asc 이다. (ascend)

만약 내림차순으로 바꾸고 싶다면 desc를 적어주면 된다. (descend)

 

group by 나 order by 들은 where과 같이 쓰일 수 있다.~> 여러 응용이 가능.

 

Alias

별칭을 만드는 방법으로는 크게 2가지가 있다.

select * from orders o

where o.course_title = '앱개발 종합반'

 

이렇게 orders의 별칭으로 o를 설정하는 것.

 

select payment_method, count(*) as cnt from orders o

where o.course_title = '앱개발 종합반'

group by payment_method

 

또는 이렇게 count(*) as cnt 로 해서,

나중에 count(*)로 적을 필요 없이 cnt로도 해당 부분에 접근할 수 있도록 하는 방법이다. 

 

즉,

1) 바로 옆에 별칭을 붙이는 방법

2) as ~~~ 로 별칭을 붙이는 방법

 

728x90

'강의수강 > [SQL]' 카테고리의 다른 글

[항해99 SQL] 문법 총 정리  (0) 2024.01.26
[항해99 SQL] 4주차  (2) 2024.01.26
[항해99 SQL] 3주차  (1) 2024.01.26
[항해99 SQL] 1주차  (1) 2024.01.25