미소를뿌리는감자의 코딩
[항해99 SQL] 2주차 본문
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 ~~~ 로 별칭을 붙이는 방법
'강의수강 > [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 |