Notice
Recent Posts
Recent Comments
Link
forest_moon
SQL 쿼리 예시 및 정리하기 본문
섹션 1: 데이터 필터링(feat. 시험 성적)
섹션 2: 집계함수(feat. 거래내역)
섹션 3: 시간값 필터링(feat. 거래내역)
데이터 필터링(feat. 시험 성적)
- AND 필터링
장학생, 모두 90점 이상인 학생을 알려주세요.
SELECT -- 3: 모든 컬럼을 조회
*
FROM -- 1: 학생 테이블에서
students
WHERE -- 2: 다음 조건을 가지고 필터링 한 뒤
math_score > 90
AND
english_score > 90
AND
programming_score > 90
;
- OR 필터링
과락 학생, 적어도 한 과목이 75점 미만인 학생은?
SELECT -- 3: 모든 컬럼을 조회
*
FROM -- 1: 학생 테이블에서
students
WHERE -- 2: 다음 조건을 가지고 필터링 한 뒤
math_score < 75
OR
english_score < 75
OR
programming_score < 75
;
- 산술 연산과 별칭
각 학생의 총점은?
SELECT -- 2: 모든 컬럼 및 총점 조회
*,
math_score + english_score + programming_score AS total
FROM -- 1: 학생 테이블에서
students
;
각 학생별 평균은?
SELECT -- 2: 모든 컬럼 및 평균 조회
*,
(math_score + english_score + programming_score) / 3 AS average_score
FROM -- 1: 학생 테이블에서
students
;
- 특정 컬럼만 가져오기
장학생2, 총점이 270 이상인 학생은 누구?
SELECT -- 3: 특정 컬럼을 조회
id,
nickname,
math_score + english_score + programming_score AS total_score,
(math_score + english_score + programming_score) / 3 AS average_score
FROM -- 1: 학생 테이블에서
students
WHERE -- 2: 다음 조건으로 필터링 한 뒤
(math_score + english_score + programming_score) >= 270
;
집계함수(feat. 거래내역)
- SUM 함수
11: 거래내역 총합이 어떻게 될까? SELECT -- 2: amount 컬럼의 총합을 계산 SUM(amount) FROM -- 1: 거래내역 테이블에서 transactions ;
- MAX와 MIN 함수
12: 거래금액 중 최대/최소액이 어떻게 돼요? SELECT -- 2: amount 컬럼의 최대값(MAX)과 최소값(MIN)을 계산 MAX(amount), MIN(amount) FROM -- 1: 거래내역 테이블에서 transactions ;
- COUNT 함수
13: 구글과 총 몇번 거래했는지 알 수 있나요? SELECT -- 3: 개수를 집계 COUNT(*) FROM -- 1: 거래내역 테이블에서 transactions WHERE -- 2: 거래 메시지가 Google 인 것의 msg = 'Google' ;
- AVG 함수
14: 한번 거래할 때, 평균 얼마정도 거래되나요? SELECT -- 2: 평균을 집계 ROUND(AVG(amount), 2) -- ROUND(col, n): col을 소수점 n자리까지 반올림 FROM -- 1: 거래내역 테이블에서 transactions ;
- DISTINCT 함수
15: 거래처 목록, 중복 없이 뽑아주세요 SELECT -- 2: 중복을 제거한 msg를 조회 DISTINCT(msg) FROM -- 1: 거래내역 테이블에서 transactions ;
- 거래내역 중, 입금 총액은?
SELECT -- 3: 총합을 계산
SUM(amount)
FROM -- 1: 거래내역 테이블에서
transactions
WHERE -- 2: 입금된 것들의
amount > 0
;
시간값 필터링(feat. 거래내역)
- 날짜 형식으로 필터링
17: 21년 1월 거래금액 좀 알려주세요. SELECT -- 3: 조회 내용 SUM(amount) FROM -- 1: 대상 테이블 transactions WHERE -- 2: 필터링 조건 -- 22년 1월 1일 이상 created_at >= '2022-01-01' AND -- 22년 2월 1일 미만 created_at < '2022-02-01' ;
- EXTRACT 함수
18: 21년 12월 거래액은요? -- EXTRACT(): 시간값에서 특정 속성을 숫자로 추출! -- 2021-11-26 10:32:02+09 => YEAR(2021), MONTH(11), ... SELECT -- 3: 조회 내용 SUM(amount) FROM -- 1: 대상 테이블 transactions WHERE -- 2: 필터링 조건 -- created_at 컬럼이 2021년인 것 EXTRACT(YEAR FROM created_at) = 2021 AND -- created_at 컬럼이 12월인 것 EXTRACT(MONTH FROM created_at) = 12 ;
- TO_CHAR 함수
19: 21년 11월 거래액도 알려주세요 -- TO_CHAR: 특정 값을 다양한 형식의 문자로 바꿈! -- 2021-11-26 10:32:02+09 >> 'YYYY-MM' => '2021-11' SELECT -- 3: 조회 내용 SUM(*) FROM -- 1: 대상 테이블 transactions WHERE -- 2: 필터링 조건 -- create_at가 2021년 11월인 것 TO_CHAR(created_at, 'YYYY-MM') = '2021-11' ;
20: 21년 11월과 22년 1월읠 거래액 총합은요?
-- TO_CHAR: 특정 값을 다양한 형식의 문자로 바꿈!
-- 2021-11-26 10:32:02+09 >> 'YYYY-MM' => '2021-11'
SELECT -- 3: 조회 내용
SUM(amount)
FROM -- 1: 대상 테이블
transactions
WHERE -- 2: 필터링 조건
TO_CHAR(created_at, 'YYYY-MM') = '2021-11'
OR
TO_CHAR(created_at, 'YYYY-MM') = '2022-01'
;
'이것저것' 카테고리의 다른 글
알고리즘-이진탐색(Binary Search) (0) | 2023.01.08 |
---|---|
시간 복잡도(Time Complexity) 와 공간 복잡도(Space Complexity) (1) | 2023.01.05 |
MyBatis 란? (1) | 2022.12.20 |
DB-PostgreSQL ? (0) | 2022.12.13 |
스프링(Spring) 의 기초 와 원리 (1) | 2022.10.06 |