inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

통계 데이터와 성능 문제

[Deprecated] 오타 제보

86

개발하는쿼카

작성한 질문수 43

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

 

감사합니다.

sql mysql dbms/rdbms 소프트웨어-설계 SQLD 지금-베스트

답변 1

1

김영한

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

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

WHERE order_status = 'COMPLETED'

따라서 2건이 맞습니다.

감사합니다.

1

개발하는쿼카

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

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

실제 FK제약조건을 설정하지 않는이유

0

30

2

히스토리 관련 질문

0

57

2

통계 데이터 수정 질문

1

63

2

공통 코드에서 Redis Pub/Sub은 최근 실무에서 쓰이진 않나요?

0

133

2

DELETE -> SELECT 질문 드립니다.

0

48

1

상속 관계 모델링의 적용 기준 질문

0

75

1

TTL 캐싱에 대한 질문

0

78

1

공통 코드 사용시 컬럼 타입 설정

0

83

1

history_creted_at과 valid_from

1

65

2

함수 기반 인덱스 (Function-Based Index)

0

68

1

추후 강의 질문있습니다

0

124

2

실무 통계 질문(고민) 드립니다..!

0

91

2

Json 컬럼의 객체 맵핑

0

64

1

오타 제보

0

73

2

category_path 테이블에서 idx_descendant 인덱스를 생성하는 이유가 궁금합니다

0

96

2

물리적으로 외래 키 제약 조건을 설정하지 않을 때

0

97

1

`전체 행 스냅샷 이력 테이블`의 대상 테이블 칼럼 변경

1

84

1

common_code_detail의 code 변경 가능성

1

112

1

[해결책 - 코드값 분리] 중 orders(order_status) - common_code(code) 타입 불일치 제보

0

87

1

이미 문자열 타입인 컬럼을 캐스팅하는 이유

0

106

2

계층 구조 모델링 기타 방법들

0

106

1

섹션 9의 퀴즈가 영어로 출력되요.

0

106

2

섹션 6 SOFT DELETE) UNIQUE 제약 조건 + 가상 컬럼

0

77

1

섹션2 공통 코드) 애플리케이션 ENUM을 API에 그대로 노출한다면?

0

126

1