어제에 이어서 SQL 강의를 계속해서 들었다.

 

SQL 내에서 사용되는 명령어들을 '함수' 라고 부른다는것을 배우고

어제 배웠던 내용을 상기해보면,

Select *
From table
where 조건
		between A and B  사이  
        in (A, B, C)     하나라도 포함
       	like '%A%'		 A가 있는 
        
      필터링
        A and B          A B 전부 만족
        A or  B          A 이거나 B 일 때
        not A            A 가 아닐 때

간단한 내용들이었고

 

 

오늘 배운 내용은

	sum(컬럼)   전부 더하기
	avg(컬럼)   데이터 평균값
    count(컬럼)    데이터의 갯수 
    
	group by (컬럼)  컬럼내 데이터 종류별로 나열
    Order by (컬럼)  오름차순으로 컬럼 데이터 정렬  
    				 desc 내림차순

 

해당 칼럼 내의 데이터를 방법에 따라 계산한 결과를 표시하거나,

데이터의 표시 방법 등에 관한것을 배웠다.

 

조금 복잡하긴 했지만 이해하기에 어려운 수준은 아니었다.

 

추가로,

 replace(컬럼, 현재 값, 바꿀 값)
 		 컬럼 내의 현재 값과 일치하는 데이터를 바꿀 값으로 변경
        
 substring(컬럼, 시작점, 읽을 수)
 		   컬럼 내 데이터의 일부만 표기

 concat(값1, 값2, 값3)
 		임의의 값을 하나로 붙여서 표기

슬슬 어렵다는 느낌이 들었지만 여기까진 괜찮다.

 

IF(조건, 조건충족시, 불충족)

Case when 조건1 then 값(수식)1
     when 조건2 then 값(수식)2
     else 값(수식)3
     end

조건 지정의 대명사인 if 와 case를 배우면서 두뇌 회전이 지연되는듯 한 현상을 겪었다.

보는것만으로 이해되던것들이 잘 되지 않기 시작했다.

 

그래도 강의 영상을 멈춰두고 잠시 생각하는 것으로 이해하려고 노력했고 

시간이 좀 걸려도 이해하는데 무리는 없었다.

 

단순히 함수의 용도에 대한 이해도 중요하지만,

실질적인 활용 방법에 대해 생각할 수 있는 지능(?) 이 약간 별개라고 느껴진다.

 

이해했다고 생각한 부분도, 직접 써보려고 하니 버벅거리며 잘 되지 않았다.

 

 

머리속에서 날아가지 않게 주기적으로 직접 사용하는 복습이 중요 할 것 같다.

 

더보기
문제
다음의 조건으로 배달시간이 늦었는지 판단하는 값을 만들어주세요.
 

1. 다음의 조건으로 배달시간이 늦었는지 판단하는 값을 만들어주세요.

  • 주중 : 25분 이상
  • 주말 : 30분 이상

오늘 강의에서 제공한 문제를 풀어 보았는데, 

	   case when delivery_time >= if (day_of_the_week = 'weekend',30, 25) then 'Late'  
	   else 'On-time' end  "지연여부"

와 같은 case, if 구문을 이용해서 풀이 해 보았다.

late 표기 조건으로 주말은 30 이상, 그 외는 25 이상 인 경우, Late

나머지의 경우 On-time 으로 표기 하도록 해 보았다.

 

위 문제의 경우 주말과 주말 이외의 경우 밖에 없기 때문에 저런 식으로 사용 할 수 있었다.

+ Recent posts