أود الحصول على استعلام مستكشف البيانات لجميع المواضيع في فئة وعدد الأصوات على كل منها. أنا جديد في استعلامات SQL ولم أتمكن من العثور على أي شيء موجود يبدو قريبًا بما يكفي لأقوم بتعديله.
من الناحية المثالية، سيبدو الأمر كالتالي:
الموضوع
الأصوات
الردود
العلامات
مغلق
موضوع مثال 1
85
62
ويب، iOS، Android
FALSE
موضوع مثال 2
79
45
ويب
TRUE
هل يمكن لأحد مساعدتي في هذا؟ أعتذر إذا كان هذا هو المكان الخطأ. بدا وكأنه أقرب موضوع موجود.
-- [params]
-- int :category_id
WITH tag_names AS (
SELECT t.id topic_id,
string_agg(tags.name, ', ' ORDER BY tags.name) AS "tags"
FROM topics t
JOIN topic_tags tt ON tt.topic_id = t.id
JOIN tags ON tags.id = tt.tag_id
GROUP BY t.id
)
SELECT t.created_at::date,
dvtvc.topic_id,
votes_count,
t.posts_count,
tn.tags,
t.closed
FROM discourse_voting_topic_vote_count dvtvc
JOIN topics t ON t.id = dvtvc.topic_id
LEFT JOIN tag_names tn ON dvtvc.topic_id = tn.topic_id
WHERE t.category_id = :category_id
AND votes_count > 0
ORDER BY t.created_at DESC
أعتقد أن إضافة t.title إلى SELECT يجب أن تتضمن ذلك:
-- [params]
-- int :category_id
WITH tag_names AS (
SELECT t.id topic_id,
string_agg(tags.name, ', ' ORDER BY tags.name) AS "tags"
FROM topics t
JOIN topic_tags tt ON tt.topic_id = t.id
JOIN tags ON tags.id = tt.tag_id
GROUP BY t.id
)
SELECT t.created_at::date,
dvtvc.topic_id,
t.title,
votes_count,
t.posts_count,
tn.tags,
t.closed
FROM discourse_voting_topic_vote_count dvtvc
JOIN topics t ON t.id = dvtvc.topic_id
LEFT JOIN tag_names tn ON dvtvc.topic_id = tn.topic_id
WHERE t.category_id = :category_id
AND votes_count > 0
ORDER BY t.created_at DESC
هناك أيضًا خيار لتضمين رابط فعال للموضوع في التصدير أيضًا إذا كنت ترغب في ذلك، باستخدام على سبيل المثال:
'https://meta.discourse.org/t/' || t.slug || '/' || t.id AS topic_url,
لا بأس. سيتم إدراجه هنا: (فقط قم بتغييره إلى عنوان موقعك الخاص بدلاً من Meta)
-- [params]
-- int :category_id
WITH tag_names AS (
SELECT t.id topic_id,
string_agg(tags.name, ', ' ORDER BY tags.name) AS "tags"
FROM topics t
JOIN topic_tags tt ON tt.topic_id = t.id
JOIN tags ON tags.id = tt.tag_id
GROUP BY t.id
)
SELECT t.created_at::date,
dvtvc.topic_id,
t.title,
'https://meta.discourse.org/t/' || t.slug || '/' ||
t.id AS topic_url,
votes_count,
t.posts_count,
tn.tags,
t.closed
FROM discourse_voting_topic_vote_count dvtvc
JOIN topics t ON t.id = dvtvc.topic_id
LEFT JOIN tag_names tn ON dvtvc.topic_id = tn.topic_id
WHERE t.category_id = :category_id
AND votes_count > 0
ORDER BY t.created_at DESC