아. 두 가지 매우 다른 것을 카운트하고 있으므로 이 쿼리를 실행하는 올바른 방법은 UNION ALL입니다. 제 쿼리에는 discourse_reactions_reactions에 항목이 없는 게시물을 포함시키기 위해 외부 조인(outer join)이 필요합니다. 이를 추가하니 쿼리가 타임아웃되어 이것이 문제를 해결하는지 확인할 수 없습니다. 어쨌든 여기서는 Union이 정답입니다.
다만 post_actions가 좋아요를 과다 집계할 수 있을지 궁금합니다. 사용자가 게시물을 좋아요한 뒤 그 반응을 삭제하거나 변경하는 경우를 고려하고 있나요?
College Confidential에서는 좋아요에
을 사용했으므로 쿼리에서 'heart’를 '+1’로 변경해야 했습니다. 해당 쿼리의 결과는 다음과 같습니다:
| reaction | count |
|---|---|
| 2089798 | |
| 28167 | |
| 27070 | |
| 24676 | |
| 24055 | |
| 16778 | |
| 5325 | |
| 4590 | |
| 3547 | |
| 3078 | |
| 2623 | |
| 2443 | |
| 369 | |
| 43 |