التجميع حسب (SQL)

تُحدد عبارة GROUP BYفي لغة SQL أن جملة SQL SELECTتُقسّم صفوف النتائج إلى مجموعات، بناءً على قيمها في عمود واحد أو عدة أعمدة. عادةً ما يُستخدم التجميع لتطبيق نوع من الدوال التجميعية على كل مجموعة. [ 1 ] [ 2 ]

تحتوي نتيجة الاستعلام باستخدام GROUP BYعبارة `---` على صف واحد لكل مجموعة. وهذا يعني وجود قيود على الأعمدة التي يمكن أن تظهر في SELECTالعبارة المرتبطة. وكقاعدة عامة، SELECTلا يجوز أن تحتوي العبارة إلا على أعمدة ذات قيمة فريدة لكل مجموعة. ويشمل ذلك الأعمدة التي تظهر في GROUP BYالعبارة، بالإضافة إلى التجميعات التي ينتج عنها قيمة واحدة لكل مجموعة. [ 3 ]

أمثلة

يقوم بإرجاع قائمة بمعرفات الأقسام بالإضافة إلى مجموع مبيعاتها لتاريخ 1 يناير 2000.

حدد رقم القسم ، ومجموع ( مبلغ البيع ) من جدول المبيعات حيث تاريخ البيع = '01-يناير-2000'، ثم قم بتجميع النتائج حسب رقم القسم.

في المثال التالي، يمكن للمرء أن يسأل "كم عدد الوحدات التي تم بيعها في كل منطقة لكل تاريخ شحن؟ ":

مجموع الوحداتتاريخ الشحن ▼
المنطقة ▼31 يناير 20052005-02-2831-03-200530-04-200531-05-200530-06-2005
شرق6680102116127125
شمال96117138151154156
جنوب123141157178191202
غرب7897117136150157
(فارغ)
المجموع الإجمالي363435514581622640

يُعيد الكود التالي بيانات الجدول المحوري أعلاه والذي يجيب على السؤال "كم عدد الوحدات التي تم بيعها في كل منطقة لكل تاريخ شحن؟":

حدد المنطقة ، وتاريخ الشحن ، ومجموع الوحدات ( Sum_of_Units ) من جدول FlatData، وقم بتجميع النتائج حسب المنطقة وتاريخ الشحن.

مع لفة

منذ إصدار SQL:1999 ، GROUP BYيمكن توسيع نطاق WITH ROLLUPهذه الميزة لإضافة سطر نتائج يتضمن نتيجة مُجمِّع البيانات الرئيسي. في المثال أعلاه، يُقابل هذا السطر سطر المجموع الكلي .

المجموعات الشائعة

تشمل وظائف التجميع الشائعة ما يلي :

  • عدد ( تعبير ) - كمية السجلات المطابقة (لكل مجموعة)
  • مجموع ( تعبير ) - مجموع القيمة المعطاة (لكل مجموعة)
  • الحد الأدنى ( للتعبير ) - الحد الأدنى للقيمة المعطاة (لكل مجموعة)
  • الحد الأقصى ( للتعبير ) - القيمة القصوى للقيمة المعطاة (لكل مجموعة)
  • متوسط ​​( تعبير ) - متوسط ​​القيمة المعطاة (لكل مجموعة)

انظر أيضاً

مراجع

  1. "عبارة SQL GROUP BY" . www.w3schools.com . تم الاطلاع عليه بتاريخ 18-09-2020 .
  2. shkale-msft. "GROUP BY (Transact-SQL) - SQL Server" . docs.microsoft.com . تم الاطلاع عليه بتاريخ 18-09-2020 .
  3. "تجميع البيانات ودمجها في SQL" . databaselecture.com . تم الاطلاع عليه بتاريخ 9 ديسمبر 2020 .