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

ترتيب نتيجة استعلام بناءً على قيمة دالة تجميعية aggregation function في SQL

فاديا جميل

السؤال

لدي جدولين، جدول معلومات الشركات وجدول معلومات الموظفين وأريد ترتيب الشركات حسب أكبر عدد موظفنين فيها

Companies: (id, name, country)

employees: (company_id, name)

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

نقوم باختيار جميع حقول جدول الشركات، وتجميع تعداد حقل الأسماء في جدول الموظفين وتنفيذ عملية الربط بين الجدولين حسب معرف الشركة كالتالي

SELECT Companies.*,
	COUNT(employees.name) AS employees_count
FROM Companies
LEFT JOIN employees
ON Companies.id = employees.company_id

بعدها نقوم بتجميع أسطر الشركة الواحدة عبر المعرف الخاص بها (لتفادي التكرار الناتج عن عملية الربط)

GROUP BY Companies.id

ثم نقوم بترتيب الناتج حسب حقل عدد موظفي الشركة المنشئ سابقا

ORDER BY employees_count DESC

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • -1

يمكنك تنفيذ ذلك  

عن طريق التالي:

  1. نقوم بإختيار عدد الموظفين في الشركة عبر الحقل company_id حيث يعبر عن الشركة التي يعبر بها الموظف, ويتم عن طريق الدالة count بالشكل التالي
    select count(employee.company_id),employee.company_id from employee

     

  2. ثم نقوم بتصنيف العناصر حسب حقل ال company_id بإستخدام group by 

    group by(employee.company_id)

     

  3. ومن ثم نقوم بترتيب العناصر حسب عدد الcompany_id 

    order by count(employee.company_id)

     

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...