皆さん、こんにちは!
コミュニティのSQLクエリ作成はまだ始めたばかりで、ある問題で困っています。
特定のコミュニティグループが作成したスレッドに関連するデータを取得するクエリを作成する必要があります。現在のところ、以下のようになっています。
-- [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')
必要なものはほぼ揃っています。残っているデータは、これらのスレッドで受け取った「likes_received」の数です。ただし、特定のグループからの「likes」を除外したすべての「likes」をカウントする必要があります。
どうすればできますか?Googleでいくつかの解決策を調べましたが、CTE(共通テーブル式)に関するものを見つけましたが、正しく使用する方法がわかりません。
何か助けやヒントがあれば幸いです。
よろしくお願いします。