결과를 어떻게 정렬할지, 몇 개만 가져올지 정하는 것도 실무에서 정말 자주 등장한다.
오늘은 그 핵심인 ORDER BY와 LIMIT을 익힌다.
| ORDER BY, LIMIT 기본 문법
ORDER BY로 먼저 정렬하고, LIMIT으로 필요한 개수만 추출하는 방식으로 자주 함께 사용된다.
문법 | 설명 |
ORDER BY 컬럼명 ASC | 해당 컬럼 기준으로 오름차순 정렬 |
(낮은 값 → 높은 값) | |
ORDER BY 컬럼명 DESC | 해당 컬럼 기준으로 내림차순 정렬 |
(높은 값 → 낮은 값) | |
LIMIT 숫자 | 결과에서 앞에서부터 해당 개수만큼만 출력 |
| 실습용 테이블
SQL은 직접 쿼리를 실행하고 수정해보는 게 핵심!
아직 실습 환경이 없다면, 아래 글을 참고해 DBeaver와 MySQL부터 먼저 세팅해 보자
[SQL] 공부/실습 환경 세팅 – DBeaver + MySQL
[SQL] 공부/실습 환경 세팅 – DBeaver + MySQL
IT 직장에서의 N년차, SQL은 선택이 아니라 필수라는 것을 느겼다.24년에 자격증 취득하고 실무에서 조금씩 써먹는 중인데 처음에 겁먹었던 것이 무색하게 할 만하다. 앞으로의 포스팅들은 SQL을
happynestledays.tistory.com
CREATE DATABASE IF NOT EXISTS sql_blog;
USE sql_blog;
DROP TABLE IF EXISTS user_activity_log;
CREATE TABLE user_activity_log (
log_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
action VARCHAR(50),
device VARCHAR(50),
created_at DATETIME
);
INSERT INTO user_activity_log (user_id, action, device, created_at) VALUES
(101, 'login', 'mobile', '2024-04-18 08:12:00'),
(102, 'search', 'web', '2024-04-18 09:05:00'),
(101, 'purchase', 'mobile', '2024-04-18 09:40:00'),
(103, 'logout', 'web', '2024-04-18 10:15:00'),
(102, 'purchase', 'mobile', '2024-04-18 11:00:00'),
(101, 'search', 'web', '2024-04-18 11:30:00');
1. 기본 예제
● 조건 : 전체 로그를 시간 기준으로 최신 순 정렬
SELECT *
FROM user_activity_log
ORDER BY created_at DESC;
2. 실무 응용 : 최신순 정렬 후 상위 2건 보기
● 조건 : action이 'login'인 기록 중 최신순으로 2건만 조회
SELECT *
FROM user_activity_log
WHERE action = 'login'
ORDER BY created_at DESC
LIMIT 2;
3. 실무 응용 : 최신 구매순 정렬 후 상위 1건 보기
● 조건 : 가장 최근에 'purchase'한 유저를 1명만 조회
SELECT *
FROM user_activity_log
WHERE action = 'purchase'
ORDER BY created_at DESC
LIMIT 2;
오늘도 고생했다.
'5분 SQL' 카테고리의 다른 글
[MYSQL 05] GROUP BY / COUNT / SUM / AVG 개념과 실습 (0) | 2025.04.24 |
---|---|
[MYSQL 04] IS NULL / IS NOT NULL / IFNULL / COALESCE 개념과 실습 (0) | 2025.04.23 |
[MYSQL 03] IN / BETWEEN / LIKE 개념과 실습 (0) | 2025.04.22 |
[MYSQL 01] SELECT, WHERE문 개념과 실습 (0) | 2025.04.20 |
[SQL] 공부/실습 환경 세팅 – DBeaver + MySQL (0) | 2025.04.19 |