IT 일기장

[MySQL] 그룹 별로 각 게시물에 답변과 댓글 수 통계 구현 본문

프로그래밍 언어/SQL(DB)

[MySQL] 그룹 별로 각 게시물에 답변과 댓글 수 통계 구현

뽕슈 2021. 12. 12. 01:28
반응형

내가 수행 했었던 프로젝트에서 고객 17시 교육청 별로 게시물에 답변과 댓글수가 등록 돼있는지에 대한

통계가 필요하다고 하셨는데.. 설계 계획은 다음과 같았다.

 

# 계획

1. 답변을 등록한 게시물과 댓글을 등록한 게시물을 함께 갖고온다 (UNION ALL)

2. 게시물 중에 중복되는 부분은 제거한다. (DISTINCT)

3. 댓글과 답변수를 집계한다. (PARTITION BY)

4. UNION ALL 합쳤기 때문에 PARTITION BY 집계하면 댓글과 답변수가 합쳐진 수로 나옴

5. 댓글수와 답변수를 분기시키기 위해서 답변수에 조건을 부여함

 

# 추가 조건

  • 답변수는 무조건 0 아니면 1개이기 때문에 해당 교육청이 답변을 등록 했느냐 안했느냐에 따라 결정됨
  • PARTITION BY 집계한 값에서 답변 수를 빼면 댓글 수니까.. 음수가 나올 가능성을 생각해서 절대값을 붙여줬다.

무슨 이유인지는 모르겠는데 작성자가 없거나 null 값이어도 1 인식하더라.. 그래서 조건을 붙여줬었다

아무튼 이렇게 해서 쿼리를 짜긴했는데.. 현재 설계된 테이블에서 좋은 방법이 떠오르질 않는다.

속도는 0.016 ~ 0.061초정도 나오더라

 

 

반응형
Comments