موصى به, 2024

اختيار المحرر

الفرق بين المجموعة حسب الترتيب في SQL

يسمح SQL لتنظيم البيانات التي تم الحصول عليها بواسطة الاستعلام. لدينا جملان لتنظيم البيانات التي تم الحصول عليها من الاستعلام التي تكون جملة "حسب" و "ترتيب حسب". النقطة التي تميز جملة Group By و Order By هي أنه يتم استخدام جملة Group By عندما نريد تطبيق الدالة التجميعية على أكثر من مجموعة من tuples ويتم استخدام جملة Order By عندما نريد فرز البيانات التي تم الحصول عليها بواسطة الاستعلام. دعنا نناقش بعض الاختلافات بين جملة "المجموعة حسب" وبند "ترتيب حسب" بمساعدة مخطط المقارنة الموضح أدناه.

رسم بياني للمقارنة

أساس للمقارنةمجموعة منترتيب حسب
الأساسيةيتم استخدام Group By لتشكيل مجموعة مجموعة الصفوف.يتم استخدام Order By لترتيب البيانات التي تم الحصول عليها كنتيجة استعلام في نموذج Sorted.
صفة، عزالا يمكن أن تكون سمة ضمن دالة التجميع في جملة Group By.يمكن أن تكون السمة ضمن التجميع في ترتيب حسب البند.
أرضتم على أساس التشابه بين قيم السمات.تم على أساس تصاعدي وترتيب تنازلي.

تعريف المجموعة حسب البند

يتم تطبيق الدالات التجميعية مثل avg و min و max و sum و count على مجموعة واحدة من tuples. في الحالة ، إذا كنت ترغب في تطبيق الدالات التجميعية على مجموعة مجموعة الصفوف ، فسنكون لدينا جملة تجميع حسب ذلك. تجمع المجموعة حسب المجموعات المجموعات التي لها نفس قيمة السمة.

هناك شيء واحد يجب تذكره حول جملة Group By ، تأكد من أن السمة الموجودة ضمن جملة Group By يجب أن تظهر في جملة SELECT ولكن ليس تحت دالة تجميعية . إذا احتوت جملة Group By على سمة غير موجودة ضمن جملة SELECT أو إذا كانت تحت جملة SELECT ولكن تحت دالة تجميعية ، فإن الاستعلام يصبح خاطئًا. ومن ثم ، يمكننا القول أن جملة Group By تستخدم دومًا بالتعاون مع جملة SELECT.

دعنا نأخذ مثالاً لفهم جملة Group By.

SELECT Department _ID، avg (Salary) as avg_salary from Teacher Group By Department_ID.

يمكنك أن ترى أنه في البداية يتم تشكيل نتيجة وسيطة التي جمعت الأقسام.

بعد ذلك ، يتم تطبيق المتوسط ​​الكلي للوظائف على كل مجموعة من الأقسام ، وتظهر النتيجة أدناه.

تعريف الأمر حسب البند

يتم استخدام الأمر ترتيب حسب عرض البيانات التي تم الحصول عليها بواسطة استعلام في الترتيب الذي تم فرزه. مثل جملة Group By ، يتم استخدام جملة Order By أيضًا بالتعاون مع جملة SELECT. إذا لم تذكر ترتيب الفرز ، يقوم ترتيب Order By clause بفرز البيانات بترتيب تصاعدي. يمكنك تحديد ترتيب تصاعدي asc و descending order as desc .

دعنا نفهم عمل جملة Order By بمساعدة المثال التالي. لدينا جدول "مدرس" ، وسأطبّق الفرز على عمودين Department_Id و Salary ، من جدول "المدرس".

اختر Department_ID ، الراتب من طلب المعلم حسب Department_Id asc ، الراتب desc.

يمكنك أن ترى ذلك أولاً ، حيث تقوم بترتيب القسم _ID بترتيب تصاعدي ، ثم تقوم بترتيب الرواتب في نفس القسم بترتيب تنازلي.

الاختلافات الرئيسية بين المجموعة عن طريق والنظام

  1. تجمع جملة Group By مجموعة tuples في علاقة موجودة ضمن جملة SELECT. على الجانب الآخر ، فرز ترتيب "ترتيب حسب" نتيجة الاستعلام بترتيب تصاعدي أو تنازلي.
  2. لا يمكن أن تكون السمة ضمن دالة التجميع ضمن جملة Group By في حين ، يمكن أن تكون السمة ضمن دالة التجميع موجودة ضمن جملة Order By.
  3. يتم تجميع الصفوف على أساس التشابه بين قيم سمات الصفوف. على الجانب الآخر ، يتم الترتيب أو الفرز على أساس ترتيب تصاعدي أو ترتيب تنازلي.

استنتاج:

إذا كنت ترغب في تشكيل مجموعة مجموعة الصفوف ، فيجب عليك استخدام جملة Group By. في حالة رغبتك في ترتيب بيانات عمود واحد أو أكثر من عمود في مجموعة الصفوف بترتيب تصاعدي أو تنازلي ، فيجب استخدام جملة "ترتيب حسب".

Top