📖TIL(Today I Learned)

TIL 3일 차 [문자 데이터를 바꾸고, GROUP BY 사용하기]

highcat 2024. 11. 6. 18:57
지난 시간에는 SQL의 가장 기본적인 구조인
아래의 절들을 사용해 분류하고 정렬하여 쉽게 조회하는 방법을 배웠다.

 

select
from
where
group by
order by
  • 주문 테이에서 from
  • 주문 수량이 1건 주문건의 → where (어떠한 조건)
  • 음식 가격의 평균을 음식 종류별(묶어)조회하여 → select, group by, avg
  • 음식 가격이 높은 순서대로 정렬하기 → order by

 

 

★그리고 모든 함수에는 '()' ←괄호를 써서 사용한다.
예시▶ sum(컬럼)

 

 


 

 

업무 필요한 문자 포맷이 다를 때, SQL로 가공하기

 

  • 특정 문자를 다른 문자로 바꾸기

replace(바꿀 컬럼, 현재 값, 바꿀 값)

 

*like = 비슷한 데이터를 뽑을 때 사용

 


 

  • 원하는 문자만 남기기(뽑아오기)

substr(조회 할 컬럼, 시작 위치, 글자 수)

 

첫번째 글자(1)부터 마지막 글자(2)까지


 

 

  • 여러 컬럼의 문자를 합치기

concat(붙이고 싶은 값1, 붙이고 싶은 값2, 붙이고 싶은 값3, .....)

[ 서 울 ] ◀대괄호 포함 총 4글자 concat 으로 앞뒤 대괄호와 substring로 뽑아온 2글자

 

 


 

문자 데이터를 바꾸고, GROUP BY 사용하기

 

 

서울 지역음식 타입평균 주문금액 구하기

 

  • from에 먼저 food_orders를 가져오기
  • 지역(addr)를 '서울'만 조회되게 하고, 서울특별시의 첫글자 두번째(마지막)글자를 선택
  • 음식 타입(cuisine_type)도 선택
  • 평균(avg) 금액(price) 선택

  • 서울지역 '의'(조건=where) addr 중, %서울%(like가 찾는 단어의 처음과 끝에 % 붙임)
  • 각 그룹별 통계를 지정하려면 group by를 Select 몇번째 컬럼을 묶어 줄지 지정해줘야 한다.

1 = substr(addr, 1, 2) , 2 = cuisine_type

 

결과물

 

 

 

 

이메일 도메인별 고객 수평균 연령 구하기

 

먼저 고객을 조회해보면
8글자 닉네임 - 9번째 골뱅이 - 10번째부터 도메인
email. 10 = 열번째 문자부터 출력

 

▲결과물

 

‘[지역]음식점이름 (음식종류)’ 컬럼을 만들고, 총 주문건수 구하기

 

띄어쓰기는 그냥 ' (홑따옴표)'안에 공백 만들면 됨

 

▲결과물

 


 

 

 

오늘은 group by를 이해하려고 해석하기에만 시간을 다 쓴 것 같다..ㅠㅠ
갑자기 숫자 1 과 2가 나오길래 중간에 많이 난해했는데
전에 썼던 TIL을 보면서 필기도 다시 수정하고 한 단계 더 이해하게 되었다.