SQL을 사용하여 특정 연도와 월을 기준으로 데이터를 추출하는 방법을 배워보세요. 이 방법은 특정 월이나 연도의 데이터를 분석하는 데 유용합니다. SQL의 DATE 함수 및 기타 유용한 함수를 활용하여 데이터를 효율적으로 검색하는 방법을 설명하겠습니다.
데이터베이스 설정
먼저 데이터베이스와 테이블을 설정해보겠습니다. 아래는 샘플 데이터를 포함한 테이블을 생성하는 SQL 스크립트입니다.
데이터베이스 생성
데이터베이스를 생성합니다. 이미 데이터베이스가 있는 경우 이 단계를 건너뛸 수 있습니다.
CREATE DATABASE sample_db;
USE sample_db;
테이블 생성
다음으로 데이터를 저장할 테이블을 생성합니다. 여기서는 sales
테이블을 예로 들어 설명합니다.
CREATE TABLE sales (
id INT AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(100),
amount DECIMAL(10, 2),
sale_date DATE
);
샘플 데이터 삽입
마지막으로, 테이블에 샘플 데이터를 삽입합니다. 이는 나중에 쿼리 예제를 준비하기 위한 것입니다.
INSERT INTO sales (product_name, amount, sale_date) VALUES('Product A', 100.00, '2023-01-15'),('Product B', 150.00, '2023-02-20'),('Product C', 200.00, '2023-03-25'),('Product A', 250.00, '2023-01-30'),('Product B', 300.00, '2023-02-15');
기본 SQL 쿼리 작성
특정 연도와 월의 데이터를 추출하려면 기본 SQL 쿼리 구조를 이해하는 것이 첫 번째 단계입니다. 여기서는 기본 SELECT 문을 작성하는 방법을 설명합니다.
SELECT 문 기본
SELECT 문은 데이터베이스에서 데이터를 검색하는 데 사용되는 SQL 명령어입니다. 아래는 sales
테이블의 모든 데이터를 가져오는 기본 쿼리 예제입니다.
SELECT * FROM sales;
특정 열 선택
테이블의 모든 열 대신 특정 열만 선택할 수도 있습니다. 예를 들어 product_name
과 amount
열만 선택하는 쿼리는 다음과 같습니다:
SELECT product_name, amount FROM sales;
WHERE 절을 사용하여 조건 지정
WHERE 절을 사용하면 특정 조건을 충족하는 데이터만 추출할 수 있습니다. 예를 들어 amount
가 200 이상인 데이터를 가져오는 쿼리는 다음과 같습니다:
SELECT * FROM sales WHERE amount >= 200;
이 기본을 이해하면 특정 연도와 월의 데이터를 추출하는 쿼리를 더 쉽게 이해할 수 있습니다.
특정 연도와 월을 지정하기 위한 DATE 함수 사용
특정 연도와 월의 데이터를 추출하려면 SQL의 DATE 함수를 사용합니다. 여기서는 DATE 함수의 기본 사용법을 설명합니다.
DATE_FORMAT 함수 사용
DATE_FORMAT 함수는 날짜 형식을 변경할 수 있게 해줍니다. 이 함수는 특정 연도 또는 월을 추출하는 데 사용됩니다.
SELECT * FROM sales
WHERE DATE_FORMAT(sale_date, '%Y-%m') = '2023-01';
이 쿼리는 sale_date
가 2023년 1월인 모든 레코드를 검색합니다.
YEAR 및 MONTH 함수 사용
YEAR 및 MONTH 함수는 날짜의 연도 또는 월 부분을 추출할 수 있게 해줍니다.
SELECT * FROM sales
WHERE YEAR(sale_date) = 2023 AND MONTH(sale_date) = 1;
이 쿼리도 2023년 1월의 레코드를 검색합니다.
BETWEEN 절 사용
BETWEEN 절을 사용하여 특정 연도와 월의 범위를 지정할 수도 있습니다.
SELECT * FROM sales
WHERE sale_date BETWEEN '2023-01-01' AND '2023-01-31';
이 쿼리는 2023년 1월 1일부터 2023년 1월 31일까지의 기간 동안 데이터를 추출합니다.
이 방법들을 사용하면 특정 연도와 월을 기준으로 데이터를 효과적으로 추출할 수 있습니다.
실제 쿼리 예제
여기서는 특정 연도와 월의 데이터를 추출하는 SQL 쿼리의 구체적인 예를 제공하겠습니다.
예제 1: 특정 연도 및 월의 데이터 추출
예를 들어 2023년 1월의 판매 데이터를 얻으려면 다음 쿼리를 사용하세요:
SELECT * FROM sales
WHERE DATE_FORMAT(sale_date, '%Y-%m') = '2023-01';
이 쿼리는 sale_date
가 2023년 1월인 모든 레코드를 반환합니다.
예제 2: 연도와 월을 별도로 지정하여 데이터 추출
마찬가지로 YEAR 및 MONTH 함수를 사용하여 2023년 1월의 데이터를 추출할 수 있습니다.
SELECT * FROM sales
WHERE YEAR(sale_date) = 2023 AND MONTH(sale_date) = 1;
이 쿼리도 2023년 1월의 모든 레코드를 반환합니다.
예제 3: 날짜 범위를 지정하여 데이터 추출
2023년 1월 1일부터 2023년 1월 31일까지의 기간 동안 데이터를 얻으려면 BETWEEN 절을 사용하세요.
SELECT * FROM sales
WHERE sale_date BETWEEN '2023-01-01' AND '2023-01-31';
이 쿼리는 지정된 기간 동안의 모든 레코드를 검색합니다.
예제 4: 월별로 데이터를 집계하여 추출
특정 월별로 데이터를 집계하려면 다음 쿼리를 사용하세요:
SELECT DATE_FORMAT(sale_date, '%Y-%m') AS month, SUM(amount) AS total_sales
FROM sales
GROUP BY month
ORDER BY month;
이 쿼리는 각 월의 총 판매액을 계산하여 연도 및 월별로 집계된 데이터를 반환합니다.
이러한 쿼리를 사용하면 특정 연도와 월에 관련된 데이터를 효과적으로 추출할 수 있습니다. 필요에 따라 적절한 쿼리를 선택하여 사용하세요.
고급 예제: 연도 및 월 범위의 데이터 추출
여기서는 연도 및 월 범위의 데이터를 추출하는 몇 가지 고급 예제를 제공하겠습니다. 이를 통해 여러 월 또는 연도에 걸친 데이터 분석이 가능합니다.
예제 1: 여러 월의 데이터 추출
예를 들어, 2023년 1월부터 2023년 3월까지의 데이터를 추출하려면 다음 쿼리를 사용하세요:
SELECT * FROM sales
WHERE sale_date BETWEEN '2023-01-01' AND '2023-03-31';
이 쿼리는 2023년 1월 1일부터 2023년 3월 31일까지의 기간 동안의 모든 레코드를 검색합니다.
예제 2: 여러 연도에 걸쳐 특정 월의 데이터 추출
예를 들어, 매년 1월의 데이터를 추출하려면 다음 쿼리를 사용하세요:
SELECT * FROM sales
WHERE MONTH(sale_date) = 1;
이 쿼리는 매년 1월에 해당하는 모든 레코드를 검색합니다.
예제 3: 동적 범위를 사용하여 데이터 추출
현재 날짜를 기준으로 지난 6개월 동안의 데이터를 동적 범위를 사용하여 추출하려면 다음 쿼리를 사용하세요:
SELECT * FROM sales
WHERE sale_date >= DATE_SUB(CURDATE(), INTERVAL 6 MONTH);
이 쿼리는 현재 날짜를 기준으로 지난 6개월 동안의 모든 레코드를 검색합니다.
예제 4: 특정 연도의 특정 월에 대한 데이터 추출 및 집계
예를 들어, 매년 1월의 총 판매액을 추출 및 집계하려면 다음 쿼리를 사용하세요:
SELECT YEAR(sale_date) AS year, SUM(amount) AS total_sales
FROM sales
WHERE MONTH(sale_date) = 1
GROUP BY year
ORDER BY year;
이 쿼리는 매년 1월의 총 판매액을 계산하여 연도별로 집계된 데이터를 반환합니다.
이 고급 예제를 사용하면 특정 기간 동안의 데이터를 효율적으로 분석할 수 있습니다. 필요에 따라 적절한 쿼리를 선택하고 이를 데이터 분석에 활용하세요.
결론
SQL을 사용하여 특정 연도 및 월의 데이터를 추출하는 방법에 대해 설명했습니다. DATE 함수와 WHERE 절을 활용하면 특정 연도, 월 및 범위의 데이터를 효과적으로 추출할 수 있습니다. 또한 여러 월 또는 연도에 걸친 데이터 분석을 위한 고급 예제를 소개했습니다. 이러한 기술을 사용하여 필요한 데이터를 정확하게 얻고 데이터 분석 및 보고서 작성에 도움을 주시기 바랍니다.