مجموعة Postgresql بواسطة

Mjmw T Postgresql Bwastt



تعد Postgresql group by clause ميزة تُستخدم لتوحيد / دمج تلك الصفوف في الجدول التي تحتوي على نفس البيانات. يستخدم هذا البند بشكل أساسي لإزالة البيانات المكررة والحفاظ على التزامن. عندما نريد حساب المجموع ، أو أي مجموع آخر مثل AVG ، وما إلى ذلك ، يتم دائمًا استخدام هذه المجموعة حسب الجملة نظرًا لوجود العديد من الجمل المستخدمة في PostgreSQL. ولكن يوجد تسلسل هرمي بين كل بند.

من> أين> 'تجميع حسب'> الحصول على> تحديد> تمييز> ترتيب حسب> تحديد

يقع عمل PostgreSQL ضمن فقرة 'أين' و 'امتلاك'.







بناء الجملة



عمود التحديد

من دومتيبل

أين [الشروط]

تجميع حسب العمود الأول ، العمود الثاني ..

ترتيب حسب العمود الأول ، العمود الثاني .. ؛

مثال 1



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





>> حدد lname ، SUM (الدفع) من مجموعة الركاب حسب lname ؛

يتم تحديد الاسم الأخير للراكب باستخدام وظيفة مضمنة 'SUM' تأخذ عمود 'الدفع'. وأضف الدفعة لهؤلاء الأشخاص الذين لديهم نفس الاسم. على سبيل المثال ، يضاف راتب 'جافيد' و 'سعد'. وأما 'مالك' و 'شمس' ، فقد ورد ذكرهما منفردين.



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

مستشفى:

>> اختر المدينة ، SUM (العمر) من المستشفى GROUP BY city ؛

مثال 2

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

هذا مثال على المجموعة بعبارة بأعمدة متعددة. لأنه عند تحديد عدة أعمدة للتجميع ، يتم تغيير القيمة الناتجة مقارنة بالمجموعة بواسطة جدول واحد.

>> حدد id ، lname ، SUM (الدفع) من مجموعة الركاب حسب معرف ، lname ؛

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

مثال 3

يحتوي هذا المثال على شرط ربط ومجموعة بعبارة. نظرًا لاستخدام 'الانضمام' ، فهذا يعني أننا استخدمنا جدولين هنا. واحد هو 'البند' ، والآخر هو 'أوامر'.

أغراض:

طلبات:

لقد استخدمنا طريقة التسلسل (تُستخدم لربط سلسلتين) لربط قيم عمودين من جدول 'العناصر' مع '،' وتسمية العمود معًا باسم 'الوصف'. إنه اختياري. يمكنك أن تأخذهم بشكل منفصل. في هذا الاستعلام ، تحدد الكلمة الأساسية 'USING' العمود المحدد من الجدول الآخر. يتم مطابقة العنوان من جدول السلع مع عمود العنوان في جدول 'الطلبات'. يتم ذلك عن طريق عمل صلة بين جدولين. مثل الأمثلة السابقة ، سيتم تحديد كلا العمودين بواسطة عبارة GROUP BY.

>> اختر الاسم || '،' || الفئة على النحو الوصف ، العنوان من العناصر الداخلية الانضمام الطلبات باستخدام (العنوان) تجميع حسب العنوان ، الوصف ؛

يمكنك ملاحظة أنه سيتم تحديد 5 صفوف تحتوي على عناوين العناصر المتطابقة مع عنوان الطلبات. وبعد ذلك ، سيتم تشكيل عمود الوصف مراسلات مع عمود العنوان.

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

عامل:

سيعمل الاستعلام بحيث يتم عرض النقطة التي يتطابق فيها اسم العامل مع الراكب ، العمر من الراكب ، في عمود العمر.

>> اختر fname || '|| الركاب.lname كما full_name ، الركاب.age من الركاب INNER انضم إلى العامل باستخدام (fname) GROUP BY full_name، travac.age ORDER BY trapic.age؛

يتم تشكيل صف واحد. يتم إنشاء full_name من خلال ضم عمودين بمسافة ، ويتم تحديد العنوان حيث يتطابق fname الخاص بالراكب مع fname الخاص بالعامل.

مثال 4

يتعامل هذا المثال مع استخدام دالة count () لحساب معرفات جدول 'العناصر'. هذا مرة أخرى مجموعة حسب معرف الجدول.

>> حدد id ، COUNT (id) من العناصر GROUP BY id ؛

يتم تقسيم الصفوف الموجودة في عمود المعرف إلى مجموعات. يتم حساب كل مجموعة في العمود الذي عدد المرات التي تظهر فيها في العمود. في الجدول الناتج ، يتم إنشاء عمود جديد باسم 'عدد' ، ويتم كتابة قيم العدد هنا أمام كل مجموعة.

مدير الصفحة الخاصة بك

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

تأمل المثال الأول ؛ هنا ، قمنا بإنشاء اسم عمود 'الكل' الذي يجمع بين عمودين. عنوان وفئة. عمود 'الكل' يحسب القيم في كلا العمودين بشكل جماعي. يتم تجميع عمود العنوان على أنه 'إضافة' ، ويتم تجميع عمود الفئة بشكل منفصل على أنه 'قطة'. كأسماء أعمدة لكلا الجدولين المستخدمين يمكن أن تتطابق مع بعضها البعض. لذلك يتم الوصول إلى كل عمود في الجدول المعني بواسطة كائن معين.

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

>> حدد o.address ، category ، count (*) كـ 'ALL' ، تجميع (o.address) كـ 'add' ، تجميع (فئة) كـ 'cat' من العناصر I ، أوامر o حيث i.order_no = o. order_id AND i.address = 'Lahore' GROUP BY CUBE (o.address، category) ORDER BY 1، 2؛

لمدينة لاهور ، تم تحديد فئة واحدة. هناك 4 احتمالات. في بعض الأحيان ، تكون اللعبة موجودة ولكن ليس العنوان. والعكس صحيح. ولكن يوجد وقت يوجد فيه كل من الفئة والعنوان.

الآن ، إذا قمنا بتغيير شرط الاسم من جدول وقمنا بتبديل الجدول بآخر. تم استبدال 'Items.address' بـ 'order.address' ، ثم تكون النتيجة مختلفة.

خاتمة

يتم استخدام عبارة 'Postgresql group by' لتطبيق أي عامل تشغيل مجمع على البيانات الجماعية. تستخدم هذه المقالة تجميعًا بعبارة مع وظيفة العد ، والصلات ، واختيار وتجميع أعمدة متعددة. أنا متأكد من أن هذا البرنامج التعليمي سيكون أفضل وسيلة لفهم القراء.