“Connecting the dots”

집계, 정렬, 서브 쿼리 본문

레벨업

집계, 정렬, 서브 쿼리

kims1997 2022. 12. 23. 10:27
반응형

집계, 정렬, 서브 쿼리


1count 로 행 개수 구하기 

일반적으로 함수는 인수로 하나의 값을 지정하는 데 비해 집계함수는 인수로 집합을 지정 따라서 집합함수라고한다

 

2집계함수와null 값

null값은 제외하고 처리하게 된다 

 

3distinct로 중복 제거 

 

중복된 값이 있는 여부에 따라 문제다 될때가 있다 이럴 때 사용하는 함수가 Distinct이다 

이렇게 지정해주면 중복된 데이터를 제외한 결과를 클라이언트로 반환한다 *로 지정하면 중복여부 상관없이 모든 행을 반환

 

4 집계함수에서 Distinct

null 값을 제외하고 중복하지 얺은 데이터를 구하는 건 불가능하다 

 

1Sum으로 합계 구하기 집계함수는 count말고 sum집계함수를 사용해 집합의 합계를 구할 수 있다 col 값의 총 합을 구해준다 

 

 

AVG로 평균내기 

sum과 마찬가지로 null값은 무시해준다 null도 사용하고 싶다면 case로 0으로변환시키고 해야된다

 

min,max로 최솟값,최댓값 구하기 

 

min,max는 문자열과 날짜시간형에도 사용 가능하다 null값을 무시하는건 다른 집계함수와 같다

 


서브쿼리


서브쿼리는 select 명령에 의한 데이터 질의로,상부가 아닌 하부의 부수적인 질의를 의미한다 괄호를 묶어서 서브쿼리를 지정 where 구에서 가장 많이 사용된다

 

delete의 where구에서 서브쿼리 사용

코드를 작성하면 min(a)값을 먼저 찾아주고 그 값을 없애준다 delete명령을 select로 바꿔주면 실행 가능

 

스칼라값

서브쿼리 사용시 select 명령이 어떤 값을 반환하는지 주의깊게 볼 필요가 있다  하나의 값, 복수의 행이 반환되나 열은 하나 , 그리고 하나의 행이 반환되지만 열이 복수인 패턴,복수의행,복수의 열이 반환되는 패턴이다 

 


상관 서브쿼리


상관 서브쿼리를 exists 술어로 조합시켜서 서브쿼리를 사용할 수 있다 이 술어를 사용하면 서브쿼리가 반드시 스칼라값을 반환할 필요가 없고 , 단지 반환된 행이 있는지 확인해보고 있으면 참, 없으면 거짓을 반환한다

반응형

'레벨업' 카테고리의 다른 글

Schema-first vs Code-first  (0) 2022.12.23
ACID  (0) 2022.12.23
Typescript Generic  (0) 2022.12.23
Jest  (0) 2022.12.22
Eslint & Prettier  (0) 2022.12.22