Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- BFS
- DP
- 이중우선순위큐 자바
- 디베이스앤
- 면접 필수 질문
- SQL
- DBASE&
- 이중우선순위큐 java
- oracle ansi
- 위상정렬
- ansi sql 장점
- DFS
- 백준
- JPA
- IT 면접 준비
- 그리디
- 프로그래머스 이중우선순위큐 java
- CJ DBASE&
- ansi sql 단점
- Java
- 프로그래머스
- 디베이스앤 인턴 후기
- oracle ansi sql
- 이분탐색
- 프로그래머스 이중우선순위큐
- 백트래킹
- 개발자 면접 준비
- 프로그래머스 이중우선순위큐 자바
- Spring Boot
- Gradle
Archives
- Today
- Total
쉬운 프로그래밍
SQL 코딩테스트 주요 쿼리 본문
1. 정렬 (ORDER BY)
ORDER BY ~
ORDER BY DESC : 내림차순
ORDER BY ASC : 오름차순(디폴트)
SELECT * FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC;
ORDER BY는 여러 기준으로도 정렬이 가능함
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME, DATETIME DESC;
상위 N개로 제한하기
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1
2. 최대값/최소값 구하기
MAX
SELECT MAX(DATETIME) AS 시간
FROM ANIMAL_INS
MIN
SELECT MIN(DATETIME)
FROM ANIMAL_INS
3. 개수 구하기
COUNT
SELECT COUNT(*) AS '숫자'
FROM ANIMAL_INS
DISTINCT (중복 제거한 개수 구하기)
SELECT COUNT(DISTINCT NAME) AS 'COUNT'
FROM ANIMAL_INS
4. 그룹화 하기
GROUP BY ~
SELECT ANIMAL_TYPE, COUNT(*) AS 'count'
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE;
위 결과값
5. 집계를 통한 비교
WHERE 절에서는 집계 함수를 사용할 수 없기에 HAING절을 통해 집계함수를 사용한다. 이 때 HAVING 절은 GROUP BY절과 함께 사용하도록 한다.
HAVING ~
예시
SELECT HOUR(DATETIME) AS 'HOUR', COUNT(HOUR(DATETIME)) AS 'COUNT'
FROM ANIMAL_OUTS
GROUP BY HOUR
HAVING HOUR >= 9 AND HOUR < 20
ORDER BY HOUR
결과
6. NULL 처리
IFNULL( ~ )
SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name'), SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
IFNULL(NAME, 'No name') -> Name이 Null일경우 No name으로 처리
7. JOIN
LEFT OUTER JOIN : www.youtube.com/watch?v=pJqBR2TNe24&list=PLuHgQVnccGMAG1O1BRZCT3wkD_aPmPylq&index=4&ab_channel=%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9
예시 소스코드
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS AS OUTS
LEFT OUTER JOIN ANIMAL_INS AS INS
ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.ANIMAL_ID IS NULL
ORDER BY OUTS.ANIMAL_ID
8. CASE ~ THEN ~
CASE WHEN THEN ELSE 구문. -> 결과값 대체
-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME,
CASE WHEN SEX_UPON_INTAKE LIKE '%Neutered%' OR
SEX_UPON_INTAKE LIKE '%Spayed%' THEN 'O'
ELSE 'X'
END
FROM ANIMAL_INS
9. DATE FORMAT
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, "%Y-%m-%d")
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
'SQL > 문제풀이' 카테고리의 다른 글
[프로그래머스] 오랜 기간 보호한 동물 (1) (1) | 2021.03.10 |
---|---|
[프로그래머스 SQL] 입양 시각 구하기 (1) (4) | 2021.01.26 |
[프로그래머스 SQL] 동명 동물 수 (0) | 2021.01.26 |
[프로그래머스 SQL] 고양이와 개는 몇 마리 있을까 (0) | 2021.01.26 |
[프로그래머스 SQL] 중복 제거하기 (0) | 2021.01.26 |
Comments