Мне нужно сосчитать все tweets
и retweets
(все ретвиты также являются твитами) для пользователя в таблице authors
. Моя первая мысль работает очень хорошо:Собрать два счетчика с разными условиями
Твиты счетчик
SELECT a.id, a.name, count(*)
FROM authors AS a
INNER JOIN tweets AS t
ON t.fromuser_id = a.id
GROUP BY a.id, a.name
ORDER BY count(*)
ретвитов счетчик
SELECT a.id, a.name, count(*)
FROM authors AS a
INNER JOIN tweets AS t
ON t.fromuser_id = a.id AND retweet = TRUE
GROUP BY a.id, a.name
ORDER BY count(*)
... но теперь я хочу, чтобы положить, что все вместе. Интересно, есть ли лучше (быстрее) способ, чем:
Merged
SELECT a.id, a.name, count(*), (
SELECT count(*)
FROM tweets
WHERE fromuser_id = a.id AND retweet = TRUE
)
FROM authors AS a
INNER JOIN tweets AS t
ON t.fromuser_id = a.id
GROUP BY a.id, a.name
ORDER BY count(*)
Это работает отлично. Спасибо! – rebeliagamer