سعيد يوسف نشر 30 أكتوبر 2021 أرسل تقرير نشر 30 أكتوبر 2021 بافتراض لدي جدول رواتب موظفين وأريد ترتريبهم تصاعدياً مع إضافة ترقيم يدل على ترتريب راتب الموظف كيف أستطيع عمل ذلك؟ وهل يمكن تحديد التريب حسب كل قسم؟ 1 اقتباس
1 Wael Aljamal نشر 30 أكتوبر 2021 أرسل تقرير نشر 30 أكتوبر 2021 يمكن إعطاء رتبة لكل سطر من الاستعلام باستخدام دالة ()RANK في SQL فهي تعيد ترقيم تصاعدي بدءاً من 1 ولأعلى لكل سطر حسب شرط الترتيب. وتعتبر هذه الدالة من دوال النافذة window function وتعمل مع دالة OVER لتحديد المجالات الجزئية للترقيم وعلاقة الترتيب. لعمل ترقيم شامل لكل الموظفين حسب ترتيب الراتب، لن نقوم بعمل تجزئة للبيانات، أي بدون PARTITION سوف نمرر لدالة OVER علاقة الترتيب حسب الراتب فقط: SELECT *, RANK() OVER (ORDER BY salary) salary_rank FROM employees; والنتيجة: أما لعمل ترتيب جزئي حسب كل قسم، علينا تجزئة البيانات باستخدام PARTITION مع تمرير رقم القسم ثم علاقة الترتيب: لاحظ التجزئة حسب رقم الفرع: SELECT *, RANK() OVER ( PARTITION BY department_id ORDER BY salary ) salary_rank FROM employees والنتيجة: 1 اقتباس
السؤال
سعيد يوسف
بافتراض لدي جدول رواتب موظفين وأريد ترتريبهم تصاعدياً مع إضافة ترقيم يدل على ترتريب راتب الموظف كيف أستطيع عمل ذلك؟
وهل يمكن تحديد التريب حسب كل قسم؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.