강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của howistigoing
howistigoing

câu hỏi đã được viết

김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴

통계 데이터와 성능 문제

[Deprecated] 오타 제보

Viết

·

58

·

Đã chỉnh sửa

0

시력 이슈로 Deprecated

안녕하세요. 영한님!

7장1, 2, 3page 오타 제보 합니다!

 

아래 쿼리를 실행해서 데이터를 생성하고,

image.png

 

-- # 7. 통계 테이블 설계

-- ## 통계 데이터와 성능 문제

-- ### 원본 데이터 준비
DROP TABLE IF EXISTS orders;

CREATE TABLE orders (
  order_id BIGINT AUTO_INCREMENT PRIMARY KEY,
  customer_id BIGINT NOT NULL,
  total_amount INT NOT NULL,
  order_status VARCHAR(20) NOT NULL,
  order_date DATETIME NOT NULL
);

-- 데이터 입력 (예시를 위해 소량만 입력하지만, 실제로는 수백만 건이라고 가정한다)
INSERT INTO orders (customer_id, total_amount, order_status, order_date) VALUES
(1, 10000, 'COMPLETED', '2026-01-01 10:00:00'),
(2, 25000, 'COMPLETED', '2026-01-01 14:30:00'),
(3, 15000, 'COMPLETED', '2026-01-01 18:20:00'),
(4, 50000, 'COMPLETED', '2026-01-02 09:15:00'),
(5, 30000, 'COMPLETED', '2026-01-02 11:00:00'),
(6, 12000, 'CANCELLED', '2026-01-02 15:45:00'),
(7, 45000, 'COMPLETED', '2026-01-03 10:00:00');

 

아래 통계 쿼리를 실행하면,

-- ### 원본 테이블 직접 집계의 유혹
SELECT
  DATE(order_date) as stat_date,
  COUNT(*) as order_count,
  SUM(total_amount) as total_sales
FROM orders
WHERE order_status = 'COMPLETED'
GROUP BY DATE(order_date)
ORDER BY stat_date;

 

아래와 같은 결과가 나온다고 적혀있는데요.

image.png

 

2026-01-02 데이터가 3개라서 실제로는 아래와 같은 결과가 나와야할것 같아요!

image.png

 

감사합니다.

sqlmysqldbms/rdbms소프트웨어-설계SQLD지금-베스트

Câu trả lời 1

1

yh님의 프로필 이미지
yh
Người chia sẻ kiến thức

안녕하세요. 개발하는쿼카님 🙂

쿼리의 다음 조건 때문에 2026-01-02에 취소(CANCELLED)된 한 건은 제외됩니다 🙂

WHERE order_status = 'COMPLETED'

따라서 2건이 맞습니다.

감사합니다.

howistigoing님의 프로필 이미지
howistigoing
Người đặt câu hỏi

아하! 그렇군요! 시력 이슈가 있었네요 ㅠㅠ

꼼꼼하게 봐주셔서 감사합니다!

Hình ảnh hồ sơ của howistigoing
howistigoing

câu hỏi đã được viết

Đặt câu hỏi