Olá, pessoal! Como vocês estão?
Sou meio novo na criação de consultas SQL para minha comunidade, então estou travado em um problema.
Preciso criar uma consulta onde obtenho dados relacionados às threads criadas por um grupo específico na comunidade. É o que tenho até agora:
-- [params]
-- int :months_ago = 1
WITH query_period as (
SELECT
date_trunc('month', CURRENT_DATE) - INTERVAL ':months_ago months' as period_start,
date_trunc('month', CURRENT_DATE) - INTERVAL ':months_ago months' + INTERVAL '1 month' - INTERVAL '1 second' as period_end
)
SELECT
t.id as topic_id,
t.title,
u.username,
t.views,
t.posts_count
FROM topics t
RIGHT JOIN query_period qp
ON t.created_at >= qp.period_start
AND t.created_at <= qp.period_end
INNER JOIN users as u
ON t.user_id = u.id
WHERE t.user_id > 0
and u.username in ('maria.narvaez', 'Joao.Caique', 'camila.ochoa',
'Caroline.Freitas','dante.chacon', 'maria.novaes', 'FernandaVivacqua',
'gabriea.marta', 'IgorMello', 'Jay', 'joaostoky', 'Julio.Torquato',
'Luis_Quesada', 'maiara.zotelli', 'natalia.bispo', 'rbussola',
'talissa','tfgouveia', 'Victor.Ferreira')
Tenho quase tudo que preciso. Os únicos dados que faltam são a quantidade de likes_received nessas threads. Mas, preciso contar todos os likes, excluindo os likes de um grupo específico.
Como posso fazer isso? Pesquisei algumas soluções e encontrei coisas sobre CTEs, no entanto, não sei como usá-las corretamente.
Agradeceria qualquer ajuda ou dica,
obrigado desde já.