مستكشف البيانات استعلام - إضافة معامل إضافي في التصدير

أرغب في أن تتضمن قائمة “المستخدمين_الذين_ردوا_على_موضوع” اسم المستخدم.

لقد حاولت اتباع أسلوب من موضوع آخر، والذي يجعل استعلامات مستكشف البيانات هذه تتضمن معلومات إضافية، لكن لم ينجح الأمر عندما طبقت نفس الصيغة.

إليك الاستعلام الذي أستخدمه حاليًا، والذي يعيد فقط “اسم المستخدم” لأولئك الذين ردوا على موضوع…

-- https://meta.discourse.org/t/68756/8?u=sidv

-- [params]
-- topic_id :topic_id = 536

SELECT u.username
FROM badge_posts p
JOIN topics t ON p.topic_id = t.id 
JOIN users u ON p.user_id  = u.id
WHERE t.id = :topic_id
GROUP BY p.user_id,u.username

إضافة

 , u.name

بعد u.username في السطر الأول.

شكرًا لك على المساعدة السريعة في هذا الأمر، جاي! قمت بتحديث الكود إلى ما يلي، وفقًا لاقتراحك:

SELECT u.username, u.name
FROM badge_posts p
JOIN topics t ON p.topic_id = t.id 
JOIN users u ON p.user_id  = u.id
WHERE t.id = :topic_id
GROUP BY p.user_id,u.username

… ثم حصلت على هذا الخطأ…

PG::GroupingError: ERROR:  column "u.name" must appear in the GROUP BY clause or be used in an aggregate function
LINE 12: SELECT u.username, u.name

لذلك قمت بتعديل الاستعلام إلى ما يلي وعمل بسلاسة! :tada:

SELECT u.username, u.name
FROM badge_posts p
JOIN topics t ON p.topic_id = t.id 
JOIN users u ON p.user_id  = u.id
WHERE t.id = :topic_id
GROUP BY p.user_id,u.username,u.name

إذن، من مقتطفي الأصلي، أضفت ما يلي:

إلى سطر “SELECT”:
, u.name

إلى سطر “GROUP BY”:
,u.name

شكرًا مرة أخرى، @pfaffman، على مساعدتي في هذا التركيب النحوي!

أخيرًا بدأ الدكتوراه في التعليم تُثمر!

عمل رائع!

:squinting_face_with_tongue: نعم بالتأكيد! شكراً مرة أخرى :wink: