본문 바로가기

: IT/프로그래머스

[코딩테스트] MySQL > SELECT 문 (2)

반응형

1. 여러 기준으로 정렬하기

SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME, DATETIME DESC

- ANIMAL_INS 테이블에서 ANIMAL_ID, NAME, DATETIME 컬럼을 조회한다
- NAME 컬럼을 오름차 순으로 정렬하고, NAME이 동일할 경우 DATETIME 컬럼을 내림차 순으로 정렬한다


2. 상위 N개 레코드를 조회하기

SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1

- ANIMAL_INS 테이블에서 NAME 컬럼을 조회한다
- DATETIME이 가장 오래된 날짜순으로 정렬한다 (오름차순)
- 상위 1개만 선택한다


3. 최댓값 구하기

SELECT MAX(DATETIME) AS '시간'
FROM ANIMAL_INS

- ANIMAL_INS 테이블에서 DATETIME 컬럼 값 중 가장 큰 값을 조회한다


4. 최솟값 구하기

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

- ANIMAL_INS 테이블에서 DATETIME 컬럼 값 중 가장 작은 값을 조회한다


5. 동물 수 구하기

SELECT COUNT(ANIMAL_ID) AS 'count'
FROM ANIMAL_INS

- ANIMAL_INS 테이블의 ROW 수를 조회한다


6. 중복 제거하기

SELECT COUNT(DISTINCT NAME) as 'count'
FROM ANIMAL_INS
WHERE NAME is not null

- NAME 컬럼 값이 NULL인 경우는 제외한다
- NAME 컬럼 값 중에 중복되지 않는 ROW 수를 조회한다


7. 그룹화, 집계함수 GROUP BY

SELECT ANIMAL_TYPE, COUNT(ANIMAL_ID) AS 'count'
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE

- ANIMAL_TYPE을 기준으로 그룹을 나눈다
- ANIMAL_TYPE 그룹에 해당하는 ROW 수를 조회한다

반응형