\u200bمرحباً بالجميع،
هل تعرفون استعلام مستكشف البيانات الذي يساعد في رؤية عدد ونسبة المشاركات/المواضيع للموظفين خلال فترة زمنية معينة؟
شكراً لكل المساعدة.
\u200bمرحباً بالجميع،
هل تعرفون استعلام مستكشف البيانات الذي يساعد في رؤية عدد ونسبة المشاركات/المواضيع للموظفين خلال فترة زمنية معينة؟
شكراً لكل المساعدة.
آمل أن يساعدك الاستعلام التالي في ذلك.
--[params]
--date :start_date
--date :end_date
WITH posts_data AS (
SELECT
COUNT(*) AS total_posts,
SUM(CASE
WHEN u.admin = 't' OR u.moderator = 't' THEN 1
ELSE 0
END) AS staff_posts
FROM posts p
INNER JOIN users u ON u.id = p.user_id
WHERE p. post_type = 1
AND p.deleted_at ISNULL
AND p.created_at BETWEEN :start_date AND :end_date
AND p.user_id > 0
)
SELECT
total_posts,
staff_posts,
ROUND((staff_posts/total_posts::decimal)*100,2) "staff_posts %"
FROM posts_data
| total_posts | staff_posts | staff_posts % |
|---|---|---|
| 7400 | 3108 | 42.0 |
مرحباً @michebs،
شكراً لمشاركتك هذا. هل يمكنني أن أسأل عما إذا كان يمكننا تطبيق هذا على مجموعة محددة تم إنشاؤها بواسطة؟
لنفترض أن لدينا مجموعة من الموظفين ولكن ليس كلهم مشرفين أو مسؤولين، لذا نحتاج إلى إنشاء مجموعة جديدة تسمى “Katalon_team”، هل يمكننا الحصول على بيانات جميع الأشخاص في فريق Katalon هذا؟
شكراً لك.
لقد قمت بتعديل الاستعلام وأضفت اسم المجموعة كمعامل إدخال، بهذه الطريقة ستعمل مع أي مجموعة. آمل أن يساعد هذا.
--[params]
--date :start_date = 2022-01-01
--date :end_date = 2023-01-01
--string :group_name = staff
WITH group_filter AS (
SELECT user_id FROM group_users gu
JOIN groups g ON g.id = gu.group_id
WHERE LOWER(g.name) LIKE '%'||:group_name||'%'
),
posts_data AS (
SELECT
COUNT(*) AS total_posts,
SUM(CASE
WHEN gf.user_id ISNULL THEN 0
ELSE 1
END) AS staff_posts
FROM posts p
LEFT JOIN group_filter gf ON gf.user_id = p.user_id
WHERE p. post_type = 1
AND p.deleted_at ISNULL
AND p.created_at BETWEEN :start_date AND :end_date
AND p.user_id > 0
)
SELECT
total_posts,
staff_posts,
ROUND((staff_posts/total_posts::decimal)*100,2) "staff_posts %"
FROM posts_data
مرحباً ميشيل،
شكراً لك على تحديث SQL. واجهت مشكلة في تشغيله كما هو موضح في الصورة المرفقة.
يرجى تقديم المشورة حول كيفية حل هذه المشكلة. شكراً لك.
يبدو أن هذا الخطأ مرتبط بغياب جملة SELECT الأخيرة، السطر 27.
SELECT
total_posts,
staff_posts,
ROUND((staff_posts/total_posts::decimal)*100,2) "staff_posts %"
FROM posts_data
هل هذا منطقي؟
نعم، آسف على خطئي، شكراً جزيلاً على مساعدتك.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.