Ах. UNION ALL — это правильный способ выполнить этот запрос, поскольку вы считаете два совершенно разных показателя. Мой запрос требует внешнего соединения (outer join), чтобы охватить посты, у которых нет записи в discourse_reactions_reactions. Добавление этого соединения привело к таймауту запроса, поэтому я не могу проверить, решает ли это проблему. В любом случае, UNION здесь — верное решение.
Меня немного интересует, не приводит ли post_actions к завышению количества лайков. Учитывает ли он случаи, когда пользователь лайкнул пост, а затем удалил или изменил эту реакцию?
Мне пришлось заменить ‘heart’ на ‘+1’ в запросе, так как на College Confidential мы использовали
для лайков. Вот результат выполнения этого запроса:
| reaction | count |
|---|---|
| 2089798 | |
| 28167 | |
| 27070 | |
| 24676 | |
| 24055 | |
| 16778 | |
| 5325 | |
| 4590 | |
| 3547 | |
| 3078 | |
| 2623 | |
| 2443 | |
| 369 | |
| 43 |