SQL Select문 정리! - (Group by, Order by, Alias)

김지환·2023년 4월 29일
0

sql

목록 보기
2/5
post-thumbnail

안녕하세요! 이번에는 SQL Select문 중에서 Group by, Order by 등을 복습할 것입니다.🧐


Group by 🤠

Group by는 ~별로 데이터를 묶는다고 생각하면 이해하기 쉽습니다. 예를 들어 users라는 테이블에서 name이라는 필드를 Group by를 사용하여 묶는다면 김씨, 이씨, 박씨 등의 데이터가 각 성씨별로 묶여지는 것을 확인할 수 있습니다. count까지 같이 사용하여 각 성별로 몇명의 사용자가 있는지 확인할 수 있습니다.

select name, count(*) from users
group by name

위의 쿼리는 from → group by → select 순서로 진행됩니다.

select 뒤의 name, count(*)에서 name은 데이터가 Group by로 묶여서 각 성씨끼리 묶여서 표시됩니다.

count(*)는 name에서 묶인 성씨별로의 데이터수를 표시하게 됩니다.

따라서 위 명령어의 결과물은 각 성씨로 묶인 데이터(name)과 그 성씨별로 데이터 수(count)만 표시됩니다.


Order by 📃

Order by는 데이터를 오름차순, 내림차순으로 정렬할 때 사용합니다. 위의 쿼리를 활용하여 Order by를 적용해 보겠습니다.

select name, count(*) from users
group by name
order by count(*)

위 쿼리는 from → group by → select → order by 순서로 진행됩니다.

Order by 기능을 추가하여 count(*) 데이터 값을 오름차순으로 정렬하게 됩니다. 만약 내림차순으로 정렬하고 싶으면 어떤 방법을 사용해야 할까요??

select name, count(*) from users
group by name
order by count(*) desc

내림차순을 사용하고 싶다면 order by "필드명" desc 로 작성하면 됩니다. 오름차순을 사용할시에는 desc만 제거해주면 가능!

Alias 🔡

Alias는 별칭 기능입니다. 쿼리가 길어지면 중복되는 다른 테이블들 끼리의 필드명을 구분하기 위해서 사용됩니다! 다음에 Join을 진행하면서 더 자세히 기록할 수 있을 것 같은데요! 보통은 이렇게 작성됩니다.

select * from orders o
order by o.user_id

select * from users u
order by u.user_id

위의 쿼리는 orders와 users라는 테이블을 각각 o, u라는 별칭을 표시해서 user_id를 정렬할 때 어떤 테이블의 필드인지 헷갈리지 않게 작성할 수 있습니다.


Group by와 Order by를 공부하면서 필요한 데이터를 묶고 정렬해보니 너무 편리하다는 것을 직접적으로 느끼게 되었습니다. 여러 테이블(데이터)에 Group by와 Order by를 적용시켜보며 숙달해보는 것을 추천드립니다. 읽어주셔서 감사합니다! 😁

0개의 댓글

관련 채용 정보