[SQL] SQL 고득점 Kit - SUM, MAX, MIN

Updated:


최댓값 구하기

  • 내림차순 정렬 후, 1개만 출력하기
    SELECT DATETIME '시간' FROM ANIMAL_INS
    ORDER BY DATETIME DESC LIMIT 1;
    
  • MIN, MAX 사용하기
SELECT MAX(DATETIME) '시간' FROM ANIMAL_INS;

최솟값 구하기

SELECT MIN(DATETIME) '시간' FROM ANIMAL_INS;

동물 수 구하기

SELECT COUNT(ANIMAL_ID) FROM ANIMAL_INS;
  • SUM, COUNT 차이점은 ?

중복 제거하기

SELECT COUNT(DISTINCT NAME) "count" FROM ANIMAL_INS
WHERE NAME IS NOT NULL;

정리

  • 열 이름 변경하여 출력하기(as)

    select [col] “출력할 열 이름” from [table]; select [col] as 출력할 열 이름 from [tabke];

  • 집계함수 sum(), count()
    • sum() : 레코드의 합계를 출력
    • count() : 모든 레코드의 수를 출력

select sum(population) from city; – 인구수 합계 출력 select count(*) from city; –city의 모든 레코드 출력

top(), with ties

  • 중복 제거 방법 : DISTINCT, GROUP BY

DISTINCT 사용 : 중복 제거, 정렬 x

select distinct [col] from [table] where 조건;

GROUP BY 사용 : 중복 제거, 정렬 o

select [col] from [table] where 조건 group by [col];

  • null 값 체크 방법

col의 값이 null 값인 경우 출력

select * form [table] where [col] is null;

col의 값이 빈 값인 경우

select * form [table] where [col] = ‘’;

col의 값의 길이가 0인 경우 = null or 빈 값

select * from [table] where length([col]) = 0

col의 값이 null이 아닌 경우 출력

select * from [table] where [col] is not null;

col의 값이 빈 값이 아닌 경우

select * from [table] where [col] != 0;

집계함수 정리

  • 집계함수란?
    어떤 데이터를 집계하는 함수들을 의미

  • 종류 count(열 or * ) : 해당 열, 모든 레코드 수 출력 sum(열) : 해당 열의 합계 출력 max(열) : 해당 열의 최대 값 출력 min(열) : 해당 열의 최소 값 출력 avg(열) : 해당 열의 평균 값 출력

  • Group Query(Group by, Having)

Group By : 집계함수의 결과를 특정 컬럼 기준으로 묶어 결과를 출력

select 열, 집계함수(열) from [table] (where 열 = date) group by 열;

Having : Group By 쿼리의 결과를 다시 필터링하기 위한 쿼리, select 문의 결과에 조건을 걸 때 where을 사용하는 것과 같음

select 열, 집계함수(열) from [table] (where 열 = data) group by 열 (having 집계함수(열) 부등호 data)

조건 비교에 사용될 데이터는 당연히 집계 함수의 결과를 사용해야 함

참고

출처: 프로그래머스 SQL 고득점 Kit

Leave a comment