정렬과 페이징
사용 테이블
products — 상품 (이름, 가격, 재고, 브랜드)
customers — 고객 (등급, 포인트, 가입채널)
orders — 주문 (상태, 금액, 일시)
reviews — 리뷰 (평점, 내용)
payments — 결제 (방법, 금액, 상태)
학습 범위
SELECT, WHERE, ORDER BY, LIMIT, OFFSET, DISTINCT, AS, arithmetic operations
1. 상품을 가격이 비싼 순서대로 정렬하여 이름(name)과 가격(price)을 조회하세요.
상품을 가격이 비싼 순서대로 정렬하여 이름(name)과 가격(price)을 조회하세요.
힌트 1: ORDER BY price DESC를 사용하면 내림차순 정렬입니다
정답
실행 결과 (총 280행 중 상위 7행)
| name | price |
|---|---|
| MacBook Air 15 M3 실버 | 5,481,100.00 |
| ASUS TUF Gaming RTX 5080 화이트 | 4,526,600.00 |
| ASUS Dual RTX 5070 Ti [특별 한정판 에디션] 저소... | 4,496,700.00 |
| Razer Blade 18 블랙 | 4,353,100.00 |
| Razer Blade 16 실버 | 3,702,900.00 |
| ASUS ROG Strix G16CH 화이트 | 3,671,500.00 |
| ASUS ROG Zephyrus G16 | 3,429,900.00 |
2. 상품을 가격이 저렴한 순서대로 정렬하여 이름, 브랜드(brand), 가격을 조회하세요.
상품을 가격이 저렴한 순서대로 정렬하여 이름, 브랜드(brand), 가격을 조회하세요.
힌트 1: ORDER BY price ASC 또는 ORDER BY price만 써도 오름차순(기본값)입니다
정답
실행 결과 (총 280행 중 상위 7행)
| name | brand | price |
|---|---|---|
| TP-Link TG-3468 블랙 | TP-Link | 18,500.00 |
| 삼성 SPA-KFG0BUB 실버 | 삼성전자 | 21,900.00 |
| Arctic Freezer 36 A-RGB 화이트 | Arctic | 23,000.00 |
| Arctic Freezer 36 A-RGB 화이트 | Arctic | 29,900.00 |
| TP-Link Archer TBE400E 화이트 | TP-Link | 30,200.00 |
| 삼성 SPA-KFG0BUB | 삼성전자 | 30,700.00 |
| 로지텍 MK470 블랙 | 로지텍 | 31,800.00 |
3. 가장 비싼 상품 5개의 이름과 가격을 조회하세요.
가장 비싼 상품 5개의 이름과 가격을 조회하세요.
힌트 1: ORDER BY로 정렬한 뒤 LIMIT으로 상위 N개만 가져옵니다
정답
실행 결과 (5행)
| name | price |
|---|---|
| MacBook Air 15 M3 실버 | 5,481,100.00 |
| ASUS TUF Gaming RTX 5080 화이트 | 4,526,600.00 |
| ASUS Dual RTX 5070 Ti [특별 한정판 에디션] 저소... | 4,496,700.00 |
| Razer Blade 18 블랙 | 4,353,100.00 |
| Razer Blade 16 실버 | 3,702,900.00 |
4. 재고 수량(stock_qty)이 가장 적은 상품 5개의 이름, 가격, 재고 수량을 조회하세요.
재고 수량(stock_qty)이 가장 적은 상품 5개의 이름, 가격, 재고 수량을 조회하세요.
힌트 1: ORDER BY stock_qty ASC로 오름차순 정렬하면 재고가 적은 순서입니다
정답
실행 결과 (5행)
| name | price | stock_qty |
|---|---|---|
| Arctic Freezer 36 A-RGB 화이트 | 23,000.00 | 0 |
| 삼성 SPA-KFG0BUB | 30,700.00 | 4 |
| 삼성 DDR4 32GB PC4-25600 | 91,000.00 | 6 |
| Norton AntiVirus Plus | 69,700.00 | 8 |
| 로지텍 G502 HERO 실버 | 71,100.00 | 8 |
5. 고객을 가입일(created_at) 순서대로 정렬하여 가장 먼저 가입한 고객 5명의 이름, 이메일, 등급
고객을 가입일(created_at) 순서대로 정렬하여 가장 먼저 가입한 고객 5명의 이름, 이메일, 등급(grade), 가입일을 조회하세요.
힌트 1: 가장 오래된 가입일이 먼저 나오려면 ORDER BY created_at ASC를 사용합니다
정답
실행 결과 (5행)
| name | grade | created_at | |
|---|---|---|---|
| 양영진 | user84@testmail.kr | BRONZE | 2016-01-03 19:49:46 |
| 이승민 | user61@testmail.kr | BRONZE | 2016-01-04 14:11:21 |
| 유현지 | user90@testmail.kr | GOLD | 2016-01-05 22:02:29 |
| 이영자 | user98@testmail.kr | VIP | 2016-01-09 06:08:34 |
| 강은서 | user15@testmail.kr | BRONZE | 2016-01-14 06:39:08 |
6. 상품 이름을 알파벳/가나다 순서대로 정렬하여 처음 5개를 조회하세요.
상품 이름을 알파벳/가나다 순서대로 정렬하여 처음 5개를 조회하세요.
힌트 1: ORDER BY name으로 정렬하면 영문 알파벳이 한글보다 먼저 옵니다
정답
실행 결과 (5행)
| name | price |
|---|---|
| AMD Ryzen 9 9900X | 335,700.00 |
| AMD Ryzen 9 9900X | 591,800.00 |
| APC Back-UPS Pro Gaming BGM1500B 블랙 | 516,300.00 |
| ASRock B850M Pro RS 블랙 | 201,000.00 |
| ASRock B850M Pro RS 실버 | 665,600.00 |
7. 가격이 비싼 상품 상위 6~10위를 조회하세요. (즉, 상위 5개를 건너뛰고 다음 5개)
가격이 비싼 상품 상위 6~10위를 조회하세요. (즉, 상위 5개를 건너뛰고 다음 5개)
힌트 1: OFFSET은 지정한 행 수만큼 건너뜁니다. LIMIT 5 OFFSET 5로 6번째부터 가져옵니다
정답
실행 결과 (5행)
| name | price |
|---|---|
| ASUS ROG Strix G16CH 화이트 | 3,671,500.00 |
| ASUS ROG Zephyrus G16 | 3,429,900.00 |
| ASUS ROG Strix GT35 | 3,296,800.00 |
| Razer Blade 18 블랙 | 2,987,500.00 |
| ASUS Dual RTX 4060 Ti 블랙 | 2,674,800.00 |
8. 적립금(point_balance)이 가장 많은 고객 5명의 이름, 등급, 적립금을 조회하세요.
적립금(point_balance)이 가장 많은 고객 5명의 이름, 등급, 적립금을 조회하세요.
힌트 1: ORDER BY point_balance DESC로 내림차순 정렬 후 LIMIT 5를 적용합니다
정답
실행 결과 (5행)
| name | grade | point_balance |
|---|---|---|
| 박정수 | VIP | 3,955,828 |
| 김병철 | VIP | 3,518,880 |
| 강명자 | VIP | 2,450,166 |
| 정유진 | VIP | 2,383,491 |
| 김성민 | VIP | 2,297,542 |
9. 주문 금액(total_amount)이 가장 큰 주문 5건의 주문번호(order_number), 주문
주문 금액(total_amount)이 가장 큰 주문 5건의 주문번호(order_number), 주문 금액, 주문일(ordered_at)을 조회하세요.
힌트 1: orders 테이블에서 ORDER BY total_amount DESC LIMIT 5를 사용합니다
정답
실행 결과 (5행)
| order_number | total_amount | ordered_at |
|---|---|---|
| ORD-20201121-08810 | 50,867,500.00 | 2020-11-21 12:04:42 |
| ORD-20250305-32265 | 46,820,024.00 | 2025-03-05 09:01:08 |
| ORD-20230523-22331 | 46,094,971.00 | 2023-05-23 08:50:55 |
| ORD-20200209-05404 | 43,677,500.00 | 2020-02-09 23:36:36 |
| ORD-20221231-20394 | 43,585,700.00 | 2022-12-31 21:35:59 |
10. 상품 테이블에 등록된 브랜드 목록을 중복 없이 알파벳 순서대로 조회하세요.
상품 테이블에 등록된 브랜드 목록을 중복 없이 알파벳 순서대로 조회하세요.
힌트 1: SELECT DISTINCT brand로 중복을 제거하고, ORDER BY brand로 정렬합니다
정답
실행 결과 (총 55행 중 상위 7행)
| brand |
|---|
| AMD |
| APC |
| ASRock |
| ASUS |
| Adobe |
| Apple |
| Arctic |
11. 가격이 100만 원 이상인 상품을 비싼 순서대로 정렬하여 이름, 브랜드, 가격을 조회하세요. 상위 5개만 출
가격이 100만 원 이상인 상품을 비싼 순서대로 정렬하여 이름, 브랜드, 가격을 조회하세요. 상위 5개만 출력합니다.
힌트 1: WHERE price >= 1000000으로 필터링한 뒤 ORDER BY price DESC LIMIT 5를 적용합니다
정답
실행 결과 (5행)
| name | brand | price |
|---|---|---|
| MacBook Air 15 M3 실버 | Apple | 5,481,100.00 |
| ASUS TUF Gaming RTX 5080 화이트 | ASUS | 4,526,600.00 |
| ASUS Dual RTX 5070 Ti [특별 한정판 에디션] 저소... | ASUS | 4,496,700.00 |
| Razer Blade 18 블랙 | Razer | 4,353,100.00 |
| Razer Blade 16 실버 | Razer | 3,702,900.00 |
12. 삼성전자 또는 LG전자 브랜드 상품을 가격 내림차순으로 정렬하여 이름, 브랜드, 가격을 조회하세요. 상위 5
삼성전자 또는 LG전자 브랜드 상품을 가격 내림차순으로 정렬하여 이름, 브랜드, 가격을 조회하세요. 상위 5개만 출력합니다.
힌트 1: WHERE brand IN ('삼성전자', 'LG전자')로 두 브랜드를 필터링합니다
정답
SELECT name, brand, price
FROM products
WHERE brand IN ('삼성전자', 'LG전자')
ORDER BY price DESC
LIMIT 5;
실행 결과 (5행)
| name | brand | price |
|---|---|---|
| 삼성 오디세이 G5 27 블랙 | 삼성전자 | 1,833,000.00 |
| LG 27UQ85R | LG전자 | 1,828,800.00 |
| LG 27UQ85R 화이트 | LG전자 | 1,785,800.00 |
| 삼성 갤럭시북5 프로 블랙 | 삼성전자 | 1,739,900.00 |
| LG 그램 14 | LG전자 | 1,734,000.00 |
13. VIP 등급 고객 중 성이 '김'인 고객을 적립금이 많은 순서대로 정렬하여 이름, 등급, 적립금을 5명만 조
VIP 등급 고객 중 성이 '김'인 고객을 적립금이 많은 순서대로 정렬하여 이름, 등급, 적립금을 5명만 조회하세요.
힌트 1: WHERE grade = 'VIP' AND name LIKE '김%'로 두 조건을 동시에 적용합니다
정답
SELECT name, grade, point_balance
FROM customers
WHERE grade = 'VIP'
AND name LIKE '김%'
ORDER BY point_balance DESC
LIMIT 5;
실행 결과 (5행)
| name | grade | point_balance |
|---|---|---|
| 김병철 | VIP | 3,518,880 |
| 김성민 | VIP | 2,297,542 |
| 김민재 | VIP | 1,564,015 |
| 김예은 | VIP | 1,312,100 |
| 김예진 | VIP | 1,097,500 |
14. 판매 중단된 상품(discontinued_at이 NULL이 아닌 상품)을 중단일 기준 최신순으로 정렬하여
판매 중단된 상품(discontinued_at이 NULL이 아닌 상품)을 중단일 기준 최신순으로 정렬하여 이름, 가격, 중단일을 5개만 조회하세요.
힌트 1: WHERE discontinued_at IS NOT NULL로 판매 중단 상품만 필터링합니다
정답
SELECT name, price, discontinued_at
FROM products
WHERE discontinued_at IS NOT NULL
ORDER BY discontinued_at DESC
LIMIT 5;
실행 결과 (5행)
| name | price | discontinued_at |
|---|---|---|
| Dell XPS Desktop 8960 실버 | 1,249,400.00 | 2025-11-20 15:30:12 |
| Kingston FURY Beast DDR4 16GB 화이트 | 91,200.00 | 2025-11-18 04:06:13 |
| Intel Core Ultra 7 265K | 196,300.00 | 2025-11-16 21:11:33 |
| 한성 보스몬스터 DX7700 화이트 | 1,579,400.00 | 2025-10-25 03:47:01 |
| Intel Core Ultra 7 265K 화이트 | 170,200.00 | 2025-08-24 00:34:53 |
15. 리뷰 평점(rating)이 1점인 리뷰를 최신순으로 정렬하여 제목(title), 평점, 작성일(`cr
리뷰 평점(rating)이 1점인 리뷰를 최신순으로 정렬하여 제목(title), 평점, 작성일(created_at)을 5개 조회하세요.
힌트 1: reviews 테이블에서 WHERE rating = 1로 필터링하고 ORDER BY created_at DESC로 정렬합니다
정답
실행 결과 (5행)
| title | rating | created_at |
|---|---|---|
| NULL | 1 | 2026-01-05 20:37:52 |
| NULL | 1 | 2025-12-21 21:52:59 |
| 다신 안삽니다 | 1 | 2025-12-20 11:53:58 |
| NULL | 1 | 2025-12-19 08:58:30 |
| 불량품 | 1 | 2025-12-14 10:07:24 |
16. 가격이 50만 원 이상 100만 원 이하인 상품을 가격 오름차순으로 정렬하여 이름, 브랜드, 가격을 5개 조
가격이 50만 원 이상 100만 원 이하인 상품을 가격 오름차순으로 정렬하여 이름, 브랜드, 가격을 5개 조회하세요.
힌트 1: WHERE price BETWEEN 500000 AND 1000000으로 범위를 지정합니다
정답
SELECT name, brand, price
FROM products
WHERE price BETWEEN 500000 AND 1000000
ORDER BY price ASC
LIMIT 5;
실행 결과 (5행)
| name | brand | price |
|---|---|---|
| CyberPower BRG1500AVRLCD 실버 | CyberPower | 508,100.00 |
| APC Back-UPS Pro Gaming BGM1500B 블랙 | APC | 516,300.00 |
| 필립스 27E1N5300AE 화이트 | 필립스 | 518,700.00 |
| 기가바이트 Z790 AORUS MASTER | 기가바이트 | 520,400.00 |
| 엡손 L3260 | 엡손 | 525,400.00 |
17. 카드 결제(method = 'card') 중 할부 개월 수(installment_months)가 0보
카드 결제(method = 'card') 중 할부 개월 수(installment_months)가 0보다 큰 건을 할부 개월 수 내림차순, 결제 금액(amount) 내림차순으로 정렬하여 5건 조회하세요. 주문 ID, 결제 금액, 카드사(card_issuer), 할부 개월 수를 출력합니다.
힌트 1: ORDER BY 뒤에 칼럼을 쉼표로 구분하면 다중 정렬이 됩니다. 첫 번째 칼럼이 같을 때 두 번째 칼럼으로 정렬합니다
정답
SELECT order_id, amount, card_issuer, installment_months
FROM payments
WHERE method = 'card'
AND installment_months > 0
ORDER BY installment_months DESC, amount DESC
LIMIT 5;
실행 결과 (5행)
| order_id | amount | card_issuer | installment_months |
|---|---|---|---|
| 14,056 | 22,995,900.00 | 신한카드 | 24 |
| 37,522 | 13,678,700.00 | 신한카드 | 24 |
| 2471 | 13,669,032.00 | KB국민카드 | 24 |
| 3789 | 9,690,532.00 | 삼성카드 | 24 |
| 20,271 | 6,484,600.00 | 현대카드 | 24 |
18. GOLD 등급 고객을 이름 가나다순으로 정렬하여 11~15번째 고객의 이름과 이메일을 조회하세요.
GOLD 등급 고객을 이름 가나다순으로 정렬하여 11~15번째 고객의 이름과 이메일을 조회하세요.
힌트 1: 11번째부터 시작하려면 OFFSET 10 (10개를 건너뜀), 5명을 가져오려면 LIMIT 5입니다
정답
실행 결과 (5행)
| name | |
|---|---|
| 강현준 | user2268@testmail.kr |
| 강현지 | user1532@testmail.kr |
| 고경숙 | user1293@testmail.kr |
| 고성훈 | user4235@testmail.kr |
| 곽순자 | user2422@testmail.kr |
19. 결제 수단(method)의 종류를 중복 없이 조회하세요.
결제 수단(method)의 종류를 중복 없이 조회하세요.
힌트 1: SELECT DISTINCT method FROM payments를 사용합니다
정답
실행 결과 (6행)
| method |
|---|
| bank_transfer |
| card |
| kakao_pay |
| naver_pay |
| point |
| virtual_account |
20. 상품의 이름, 가격, 원가(cost_price), 마진(가격 - 원가)을 마진이 큰 순서대로 정렬하여 5
상품의 이름, 가격, 원가(cost_price), 마진(가격 - 원가)을 마진이 큰 순서대로 정렬하여 5개 조회하세요. 마진 칼럼에는 margin이라는 별칭을 붙이세요.
힌트 1: SELECT 절에서 price - cost_price AS margin으로 계산 칼럼을 만들 수 있습니다
정답
SELECT name, price, cost_price, price - cost_price AS margin
FROM products
ORDER BY margin DESC
LIMIT 5;
실행 결과 (5행)
| name | price | cost_price | margin |
|---|---|---|---|
| MacBook Air 15 M3 실버 | 5,481,100.00 | 3,205,400.00 | 2,275,700.00 |
| ASUS TUF Gaming RTX 5080 화이트 | 4,526,600.00 | 3,037,100.00 | 1,489,500.00 |
| Razer Blade 18 블랙 | 4,353,100.00 | 3,047,200.00 | 1,305,900.00 |
| ASUS Dual RTX 5070 Ti [특별 한정판 에디션] 저소... | 4,496,700.00 | 3,296,400.00 | 1,200,300.00 |
| ASUS ROG Strix G16CH 화이트 | 3,671,500.00 | 2,480,900.00 | 1,190,600.00 |
21. 취소된 주문(status = 'cancelled') 중 주문 금액이 가장 큰 5건의 주문번호, 주문 금액
취소된 주문(status = 'cancelled') 중 주문 금액이 가장 큰 5건의 주문번호, 주문 금액, 취소일(cancelled_at)을 조회하세요.
힌트 1: WHERE status = 'cancelled'로 필터링하고 ORDER BY total_amount DESC로 정렬합니다
정답
SELECT order_number, total_amount, cancelled_at
FROM orders
WHERE status = 'cancelled'
ORDER BY total_amount DESC
LIMIT 5;
실행 결과 (5행)
| order_number | total_amount | cancelled_at |
|---|---|---|
| ORD-20230523-22331 | 46,094,971.00 | 2023-05-24 05:50:55 |
| ORD-20221231-20394 | 43,585,700.00 | 2023-01-02 16:35:59 |
| ORD-20211112-14229 | 20,640,700.00 | 2021-11-14 07:35:09 |
| ORD-20250307-32312 | 18,229,600.00 | 2025-03-09 07:13:31 |
| ORD-20250924-35599 | 14,735,700.00 | 2025-09-25 13:46:38 |
22. 재고가 10개 이하인 상품을 재고 오름차순, 가격 내림차순으로 정렬하여 이름, 가격, 재고 수량을 조회하세요
재고가 10개 이하인 상품을 재고 오름차순, 가격 내림차순으로 정렬하여 이름, 가격, 재고 수량을 조회하세요.
힌트 1: WHERE stock_qty <= 10으로 필터링하고 ORDER BY stock_qty ASC, price DESC로 다중 정렬합니다
정답
SELECT name, price, stock_qty
FROM products
WHERE stock_qty <= 10
ORDER BY stock_qty ASC, price DESC;
실행 결과 (5행)
| name | price | stock_qty |
|---|---|---|
| Arctic Freezer 36 A-RGB 화이트 | 23,000.00 | 0 |
| 삼성 SPA-KFG0BUB | 30,700.00 | 4 |
| 삼성 DDR4 32GB PC4-25600 | 91,000.00 | 6 |
| 로지텍 G502 HERO 실버 | 71,100.00 | 8 |
| Norton AntiVirus Plus | 69,700.00 | 8 |
23. 한 번도 로그인하지 않은 고객(last_login_at이 NULL)을 가입일 순서대로 정렬하여 이름, 이
한 번도 로그인하지 않은 고객(last_login_at이 NULL)을 가입일 순서대로 정렬하여 이름, 이메일, 등급을 10명 조회하세요.
힌트 1: NULL 여부는 = NULL이 아니라 IS NULL로 확인합니다
정답
SELECT name, email, grade
FROM customers
WHERE last_login_at IS NULL
ORDER BY created_at ASC
LIMIT 10;
실행 결과 (총 10행 중 상위 7행)
| name | grade | |
|---|---|---|
| 윤준영 | user25@testmail.kr | BRONZE |
| 이영식 | user43@testmail.kr | BRONZE |
| 김지우 | user77@testmail.kr | BRONZE |
| 송서준 | user66@testmail.kr | BRONZE |
| 박아름 | user80@testmail.kr | BRONZE |
| 오지후 | user172@testmail.kr | BRONZE |
| 권지우 | user169@testmail.kr | BRONZE |
24. 상품의 이름, 가격, 부가세 포함 가격을 조회하세요. 부가세 포함 가격은 price * 1.1로 계산하고
상품의 이름, 가격, 부가세 포함 가격을 조회하세요. 부가세 포함 가격은 price * 1.1로 계산하고 price_with_tax라는 별칭을 붙이세요. 부가세 포함 가격이 비싼 순서대로 5개만 출력합니다.
힌트 1: ROUND(price * 1.1)로 소수점을 정리하면 깔끔한 결과를 얻을 수 있습니다
정답
SELECT name, price, ROUND(price * 1.1) AS price_with_tax
FROM products
ORDER BY price_with_tax DESC
LIMIT 5;
실행 결과 (5행)
| name | price | price_with_tax |
|---|---|---|
| MacBook Air 15 M3 실버 | 5,481,100.00 | 6,029,210.00 |
| ASUS TUF Gaming RTX 5080 화이트 | 4,526,600.00 | 4,979,260.00 |
| ASUS Dual RTX 5070 Ti [특별 한정판 에디션] 저소... | 4,496,700.00 | 4,946,370.00 |
| Razer Blade 18 블랙 | 4,353,100.00 | 4,788,410.00 |
| Razer Blade 16 실버 | 3,702,900.00 | 4,073,190.00 |
25. 2024년에 접수된 주문(ordered_at이 2024년) 중 주문 금액이 가장 큰 5건의 주문번호, 주
2024년에 접수된 주문(ordered_at이 2024년) 중 주문 금액이 가장 큰 5건의 주문번호, 주문 금액, 주문일을 조회하세요.
힌트 1: WHERE ordered_at >= '2024-01-01' AND ordered_at < '2025-01-01'로 2024년 범위를 지정합니다
정답
SELECT order_number, total_amount, ordered_at
FROM orders
WHERE ordered_at >= '2024-01-01'
AND ordered_at < '2025-01-01'
ORDER BY total_amount DESC
LIMIT 5;
실행 결과 (5행)
| order_number | total_amount | ordered_at |
|---|---|---|
| ORD-20240519-27622 | 33,762,000.00 | 2024-05-19 22:17:20 |
| ORD-20240920-29424 | 30,446,100.00 | 2024-09-20 12:04:46 |
| ORD-20240425-27274 | 25,694,900.00 | 2024-04-25 10:44:48 |
| ORD-20241101-30141 | 21,201,100.00 | 2024-11-01 20:47:38 |
| ORD-20240112-25581 | 18,265,900.00 | 2024-01-12 08:33:51 |
26. 할인 금액(discount_amount)이 0보다 큰 주문을 할인 금액이 큰 순서대로 정렬하여 주문번호,
할인 금액(discount_amount)이 0보다 큰 주문을 할인 금액이 큰 순서대로 정렬하여 주문번호, 주문 금액, 할인 금액, 주문일을 5건 조회하세요.
힌트 1: WHERE discount_amount > 0으로 할인이 적용된 주문만 필터링합니다
정답
SELECT order_number, total_amount, discount_amount, ordered_at
FROM orders
WHERE discount_amount > 0
ORDER BY discount_amount DESC
LIMIT 5;
실행 결과 (5행)
| order_number | total_amount | discount_amount | ordered_at |
|---|---|---|---|
| ORD-20221108-19517 | 33,599,000.00 | 3,837,300.00 | 2022-11-08 05:28:41 |
| ORD-20220713-17752 | 32,950,400.00 | 3,126,300.00 | 2022-07-13 16:06:23 |
| ORD-20180910-01979 | 32,615,814.00 | 2,690,000.00 | 2018-09-10 15:12:37 |
| ORD-20230930-23961 | 27,295,300.00 | 2,248,800.00 | 2023-09-30 20:13:24 |
| ORD-20220224-15869 | 35,397,700.00 | 1,924,100.00 | 2022-02-24 23:01:50 |
27. 카카오페이(method = 'kakao_pay')로 결제된 건을 결제 금액이 큰 순서대로 정렬하여 주문
카카오페이(method = 'kakao_pay')로 결제된 건을 결제 금액이 큰 순서대로 정렬하여 주문 ID(order_id), 결제 금액, 결제일(paid_at)을 5건 조회하세요.
힌트 1: payments 테이블에서 WHERE method = 'kakao_pay'로 필터링합니다
정답
SELECT order_id, amount, paid_at
FROM payments
WHERE method = 'kakao_pay'
ORDER BY amount DESC
LIMIT 5;
실행 결과 (5행)
| order_id | amount | paid_at |
|---|---|---|
| 1979 | 32,615,814.00 | 2018-09-10 15:34:37 |
| 37,004 | 31,985,600.00 | 2025-12-07 23:36:41 |
| 15,027 | 28,836,100.00 | 2021-12-23 20:02:54 |
| 25,227 | 27,440,200.00 | 2023-12-15 11:44:54 |
| 14,074 | 22,470,000.00 | 2021-11-02 15:36:38 |
28. 2025년에 가입한 고객 중 GOLD 또는 VIP 등급인 고객을 적립금이 많은 순서대로 5명 조회하세요. 이
2025년에 가입한 고객 중 GOLD 또는 VIP 등급인 고객을 적립금이 많은 순서대로 5명 조회하세요. 이름, 등급, 적립금, 가입일을 출력합니다.
힌트 1: WHERE created_at >= '2025-01-01' AND grade IN ('GOLD', 'VIP')로 조건을 조합합니다
정답
SELECT name, grade, point_balance, created_at
FROM customers
WHERE created_at >= '2025-01-01'
AND grade IN ('GOLD', 'VIP')
ORDER BY point_balance DESC
LIMIT 5;
실행 결과 (5행)
| name | grade | point_balance | created_at |
|---|---|---|---|
| 성진우 | VIP | 323,554 | 2025-10-24 12:23:58 |
| 서상철 | VIP | 263,155 | 2025-03-03 21:41:00 |
| 이미정 | VIP | 126,048 | 2025-03-05 01:34:09 |
| 이경자 | VIP | 122,578 | 2025-02-07 19:27:08 |
| 윤정자 | VIP | 109,984 | 2025-03-11 13:39:02 |
29. ASUS 브랜드가 아닌 상품(brand != 'ASUS') 중 삼성전자, LG전자, MSI도 제외한 상품
ASUS 브랜드가 아닌 상품(brand != 'ASUS') 중 삼성전자, LG전자, MSI도 제외한 상품을 가격 내림차순으로 5개 조회하세요. 이름, 브랜드, 가격을 출력합니다.
힌트 1: NOT IN을 사용하면 여러 값을 한꺼번에 제외할 수 있습니다
정답
SELECT name, brand, price
FROM products
WHERE brand NOT IN ('ASUS', '삼성전자', 'LG전자', 'MSI')
ORDER BY price DESC
LIMIT 5;
실행 결과 (5행)
| name | brand | price |
|---|---|---|
| MacBook Air 15 M3 실버 | Apple | 5,481,100.00 |
| Razer Blade 18 블랙 | Razer | 4,353,100.00 |
| Razer Blade 16 실버 | Razer | 3,702,900.00 |
| Razer Blade 18 블랙 | Razer | 2,987,500.00 |
| Razer Blade 18 화이트 | Razer | 2,483,600.00 |
30. 무게(weight_grams)가 기록된 상품 중 가장 무거운 상품 5개의 이름, 무게(그램), 가격을 조
무게(weight_grams)가 기록된 상품 중 가장 무거운 상품 5개의 이름, 무게(그램), 가격을 조회하세요. 무게를 킬로그램으로 환산한 weight_kg 칼럼도 함께 출력하세요.
힌트 1: WHERE weight_grams IS NOT NULL로 무게가 있는 상품만 필터링합니다. weight_grams / 1000.0으로 킬로그램을 계산합니다
정답
SELECT name,
weight_grams,
ROUND(weight_grams / 1000.0, 1) AS weight_kg,
price
FROM products
WHERE weight_grams IS NOT NULL
ORDER BY weight_grams DESC
LIMIT 5;
실행 결과 (5행)
| name | weight_grams | weight_kg | price |
|---|---|---|---|
| ASUS ROG Strix GT35 | 19,449 | 19.40 | 3,296,800.00 |
| 한성 보스몬스터 DX7700 화이트 | 19,250 | 19.30 | 1,579,400.00 |
| ASUS ROG Strix G16CH 화이트 | 16,624 | 16.60 | 3,671,500.00 |
| 한성 보스몬스터 DX9900 실버 | 14,892 | 14.90 | 739,900.00 |
| ASUS ROG Strix G16CH 실버 | 14,308 | 14.30 | 1,879,100.00 |