logo

المجموعة حسب مقابل الطلب حسب

تشرح هذه المقالة النظرة العامة الكاملة لعبارة GROUP BY وORDER BY. يتم استخدامها بشكل أساسي لتنظيم البيانات التي تم الحصول عليها عن طريق استعلامات SQL. يعد الفرق بين هذه الجمل أحد أكثر الأماكن التي تتعثر فيها أثناء التعلم SQL . والفرق الرئيسي بينهما هو ذلك تنطبق جملة GROUP BY عندما نريد استخدام الوظائف المجمعة لأكثر من مجموعة واحدة من الصفوف. تنطبق جملة ORDER BY عندما نريد الحصول على البيانات التي تم الحصول عليها بواسطة استعلام بترتيب الفرز . قبل إجراء المقارنة، سنتعرف أولاً على عبارات SQL هذه.

المجموعة حسب مقابل الطلب حسب

ترتيب حسب البند

يتم استخدام جملة ORDER BY في استعلامات SQL لفرز البيانات التي يتم إرجاعها بواسطة استعلام بترتيب تصاعدي أو تنازلي. إذا أهملنا ترتيب الفرز، فسيتم فرز النتيجة الملخصة بترتيب تصاعدي بشكل افتراضي. يمكن استخدام جملة ORDER BY، مثل جملة GROUP BY، بالتزامن مع عبارة SELECT. ASC يدل على ترتيب تصاعدي، في حين DESC يدل على الترتيب التنازلي

ما يلي هو بناء الجملة لاستخدام جملة ORDER BY في عبارة SQL:

جافا لديها التالي
 SELECT expressions FROM tables [WHERE conditions] ORDER BY expression [ ASC | DESC ]; 

دعونا نفهم كيفية عمل جملة ORDER BY بمساعدة المثال التالي. لنفترض أن لدينا طاولة مطور الذي يحتوي على البيانات التالية:

المجموعة حسب مقابل الطلب حسب

يمكننا أن نرى أن هذه النتائج لا يتم عرضها بطريقة منظمة. لنفترض أننا نريد تنظيم النتائج بترتيب تصاعدي أو تنازلي بناءً على عمود الدولة . في هذه الحالة، سنحتاج إلى الأمر ORDER BY للحصول على النتيجة المرجوة. يمكننا القيام بذلك عن طريق تنفيذ الأمر كما يلي:

 mysql> SELECT D_name, D_state, D_salary FROM developers ORDER BY D_state ASC; 

هنا هو الإخراج حيث سنحصل على النتائج المرجوة:

المجموعة حسب مقابل الطلب حسب

المجموعة حسب البند

يتم استخدام جملة GROUP BY في استعلامات SQL لتنظيم البيانات التي لها نفس قيم السمات. عادة، نستخدمها مع عبارة SELECT. يجب أن نتذكر دائمًا أنه يتعين علينا وضع جملة GROUP BY بعد جملة WHERE. بالإضافة إلى ذلك، يتم تحديد السرعة قبل جملة ORDER BY.

يمكننا غالبًا استخدام هذه الجملة بالتعاون مع الوظائف المجمعة مثل SUM وAVG وMIN وMAX وCOUNT لإنتاج تقارير ملخصة من قاعدة البيانات. من المهم أن تتذكر أن السمة الموجودة في هذه الجملة يجب أن تظهر في عبارة SELECT، وليس ضمن دالة مجمعة. إذا فعلنا ذلك، فسيكون الاستعلام غير صحيح. ونتيجة لذلك، يتم دائمًا استخدام جملة GROUP BY بالتزامن مع جملة SELECT. الاستعلام الخاص بجملة GROUP BY هو استعلام مجمع، ويقوم بإرجاع صف واحد لكل كائن مجمع.

الاختبار وأنواع الاختبار

ما يلي هو بناء الجملة لاستخدام جملة GROUP BY في عبارة SQL:

 SELECT column_name, function(column_name) FROM table_name WHERE condition GROUP BY column_name; 

دعونا نفهم كيفية عمل جملة GROUP BY بمساعدة مثال. وسنوضح ذلك هنا بنفس الجدول.

لنفترض أننا نريد أن نعرف متوسط ​​راتب المطور في ولاية معينة وتنظيم النتائج بترتيب تنازلي بناءً على عمود الحالة. في هذه الحالة، سنحتاج إلى الأمر GROUP BY وORDER BY للحصول على النتيجة المرجوة. يمكننا القيام بذلك عن طريق تنفيذ الأمر كما يلي:

 mysql> SELECT D_state, avg(D_salary) AS salary FROM developers GROUP BY D_state ORDER BY D_state DESC; 

شكل هذا الاستعلام في البداية نتيجة وسيطة قامت بتجميع الحالة. التالي، متوسط يتم تنفيذ الدالة على كل مجموعة من الحالات، ثم نرتب النتيجة تنازلياً، وأخيراً سنحصل على النتائج المطلوبة كما هو موضح أدناه:

المجموعة حسب مقابل الطلب حسب

الاختلافات الرئيسية بين GROUP BY وORDER BY

فيما يلي الفروق الرئيسية بين جملة Group By و Order By:

  • يتم استخدام جملة Group By لتجميع البيانات بناءً على نفس القيمة في عمود محدد. من ناحية أخرى، تقوم جملة ORDER BY بفرز النتيجة وإظهارها بترتيب تصاعدي أو تنازلي.
  • من الضروري استخدام الدالة التجميعية لاستخدام Group By. من ناحية أخرى، ليس من الضروري استخدام الدالة التجميعية لاستخدام الأمر Order By.
  • لا يمكن أن تكون السمة ضمن عبارة GROUP BY ضمن دالة تجميعية، بينما يمكن أن تكون السمة ضمن عبارة ORDER BY ضمن دالة تجميعية.
  • تتحكم جملة Group By في عرض المجموعات مما يعني أن التجميع يتم بناءً على التشابه بين قيم سمات الصف. في المقابل، تتحكم جملة ORDER BY في عرض الأعمدة مما يعني أن الترتيب أو الفرز يتم بناءً على قيم سمات العمود إما بترتيب تصاعدي أو تنازلي.
  • يتم دائمًا وضع GROUP BY بعد جملة WHERE ولكن قبل عبارة ORDER BY. من ناحية أخرى، يتم استخدام ORDER BY دائمًا بعد عبارة GROUP BY.

GROUP BY مقابل ORDER BY مخطط المقارنة

يشرح مخطط المقارنة التالي الاختلافات الرئيسية بينهما بطريقة سريعة:

SN مجموعة من ترتيب حسب
1. يتم استخدامه لتجميع الصفوف التي لها نفس القيم. يقوم بفرز مجموعة النتائج إما بترتيب تصاعدي أو تنازلي.
2. قد يكون مسموحًا به في عبارة CREATE VIEW. غير مسموح به في عبارة CREATE VIEW
3. يتحكم في عرض الصفوف. يتحكم في عرض الأعمدة.
4. لا يمكن أن تكون السمة ضمن دالة تجميعية ضمن عبارة GROUP BY. يمكن أن تكون السمة ضمن وظيفة تجميعية ضمن عبارة ORDER BY.
5. يتم استخدامه دائمًا قبل جملة ORDER BY في عبارة SELECT. يتم استخدامه دائمًا بعد جملة GROUP BY في عبارة SELECT.
6. من الضروري استخدام الوظائف المجمعة في GROUP BY. ليس من الضروري استخدام الوظائف المجمعة في ORDER BY.
7. هنا، يتم التجميع بناءً على التشابه بين قيم سمات الصف. هنا، يتم فرز مجموعة النتائج بناءً على قيم سمات العمود، إما بترتيب تصاعدي أو تنازلي.

خاتمة

تتم مقارنة جمل GROUP BY وORDER BY في هذه المقالة. كلا الجملتين من ميزات قاعدة بيانات SQL مفيدة للغاية. عندما نريد تكوين مجموعة من الصفوف، نستخدم جملة GROUP BY. إذا أردنا تنظيم البيانات بترتيب تصاعدي أو تنازلي بناءً على عمود معين، فإننا نستخدم جملة ORDER BY. ليس لديهم أي علاقة لأن كلاهما يستخدم لغرضين مختلفين. ومع ذلك، يمكننا دمجها لخدمة غرض خاص أو يمكننا استخدامها بشكل فردي حسب الظروف. يمكننا استخدام هذه الجمل فقط مع عبارة SELECT.

حفظ فيديو اليوتيوب vlc