يجب أن يعطيك هذا كل مستخدم قام بالقراءة أثناء تسجيل الدخول أو النشر خلال العام الماضي. سيطبع مستكشف البيانات أيضًا عدد هؤلاء المستخدمين.
SELECT p.user_id
FROM posts p
LEFT JOIN topics t ON t.id = p.topic_id
WHERE p.created_at::date > CURRENT_TIMESTAMP - INTERVAL '365 days'
AND t.deleted_at IS NULL
AND t.visible = TRUE
AND t.closed = FALSE
AND t.archived = FALSE
AND t.archetype = 'regular'
AND p.deleted_at IS NULL
UNION
SELECT u.user_id
FROM user_visits u
WHERE u.posts_read > 0
AND u.visited_at > CURRENT_TIMESTAMP - INTERVAL '365 days'
ORDER BY user_id
من المرجح وجود طريقة أكثر فعالية للقيام بذلك، لكنها تعمل
. إذا كنت تريد فترة محددة، فيمكنك تغيير > CURRENT_TIMESTAMP - INTERVAL '365 days' (كلاهما) إلى شيء مثل هذا: BETWEEN '20200101'::date AND '20210101'::date.
لقد زودت بمعلومات ممتازة ومرجعيات في سؤالك! لم أحتاج سوى اختيار العناصر المناسبة ودمجها.