اذهب إلى المحتوى

السؤال

نشر (معدل)

عندما اقوم بتنفيذ الكود

select rank(salary) over(partition by gender) from employee

في postgresql يظهر الخطأ التالي

ERROR: WITHIN GROUP is required for ordered-set aggregate rank

ما احاول تنفيذه هو ان اقوم بترتيب رتبة الsalary حسب جنس الموظف

تم التعديل في بواسطة شرف الدين2
توضيح العنوان وتنسيق السؤال

Recommended Posts

  • 0
نشر

سبب تلك المشكلة أنك تقوم بإعطاء دالة الرتب(rank) معاملات (parameters) بينما تلك الدالة تعمل دون تمرير أي معاملات لها, إن كنت تريد ترتيب الموظفين بناءاً على مرتبهم إذا يجب عليك إعطاء الدالة over معامل order by salary لتصبح في النهاية الجملة كالتالي

select rank() over(partition by gender order by salary) from employee

وبوجه عام, نقوم بإعطاء دالة الover كمعامل أول العمود المُراد تقسيم الصفوف إلى مجموعات طبقاً لقيمته مسبوقاً بكلمة partition

في حالتك هنا تريد تقسيم البيانات إلى مجموعات طبقاً لجنسهم , أي طبقاً لقيمة العمودgender

ومن ثم نقوم بترتيب العناصر طبقاً للعمود المُراد حساب الرتبة بناءاً عليه بإستخدام جملة order by متوبعةً بإسم العمود

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...