المجموعة عن طريق التعبير هي واحدة من المشغلين الأكثر استخداما في لغة سكل. يسمح لك بتجميع الصفوف في نتيجة استعلام بواسطة عمود معين أو أعمدة متعددة وتطبيق وظائف التجميع على كل مجموعة. ومع ذلك ، هناك حالات لا يكون فيها التعبير مجموعة بالتعبير.
الحالة الأولى التي لا يكون فيها التعبير مجموعة بالتعبير هي عندما يتم تحديد الأعمدة بعد المجموعة بالتعبير التي لم يتم تضمينها في التعبير المحدد أو في الدوال التجميعية. على سبيل المثال ، إذا كان الاستعلام يحتوي على مجموعة التعبير حسب العمود 1 ، والعمود 2 ، ويحدد تعبير التحديد عمود العمود 1 فقط ، فإن هذا التعبير ليس مجموعة بالتعبير.
الحالة الثانية التي لا يكون فيها التعبير مجموعة بالتعبير هي عندما يتم استخدام تعبيرات أو وظائف غير صالحة في تعبير محدد أو في مجموعة بالتعبير. على سبيل المثال ، مجموعة التعبير حسب العمود1 ، المجموع(العمود2) ليست مجموعة بالتعبير ، نظرا لأن مجموع الدالة التجميعية غير مسموح به في مجموعة التعبير بواسطة.
الحالة الثالثة التي لا يكون فيها التعبير مجموعة بالتعبير هي عندما يتم تحديد رقم أو تعبير يقوم بإرجاع رقم بعد المجموعة بالتعبير. على سبيل المثال ، مجموعة التعبير بنسبة 3 أو مجموعة حسب العمود 1 + العمود 2 ليست مجموعة بالتعبير ، لأنها لا تشير إلى أعمدة في الجدول.
في النهاية ، لكي يكون التعبير مجموعة بالتعبير ، يجب أن يكون صحيحا من الناحية النحوية والدلالية ، ويجب أن يفي بمتطلبات المجموعة حسب البيان في سكل.
- المبادئ الأساسية للتجميع (المجموعة حسب) في سكل
- استبعاد تعبيرات مماثلة
- وظائف التجميع والتجميع
- فقدان التفاصيل أثناء التجميع
- الشروط في المجموعة حسب العرض
- الكلمات الرئيسية والاستثناءات
- مزايا وعيوب التجميع
- بدائل للمجموعة حسب في سكل
- 1. باستخدام وظائف النافذة
- 2. استخدام الاستعلامات الفرعية
- 3. باستخدام مشغل الاتحاد المشترك
المبادئ الأساسية للتجميع (المجموعة حسب) في سكل
تجميع البيانات هي واحدة من الأدوات الرئيسية للغة سكل ، والذي يسمح لك لمعالجة البيانات بشكل مشترك وفقا لمعايير معينة. تتيح لك المجموعة حسب المشغل دمج صفوف البيانات في مجموعات بناء على قيم عمود أو أعمدة معينة.
المبادئ الأساسية لتجميع البيانات في سكل:
- .
- وظائف مجمعة. غالبا ما يتم استخدام الوظائف المجمعة مثل العد والمجموع والمتوسط وغيرها بعد المجموعة بواسطة المشغل. تسمح لك بحساب المجموع أو الكمية أو متوسط القيمة لكل مجموعة من القيم.
- تصفية البيانات. وجود أو حيث يمكن تطبيق المشغلين بعد المجموعة من قبل المشغل لتصفية البيانات. يتم استخدام عامل التشغيل لتحديد الشروط التي يجب الوفاء بها لمجموعة من البيانات ، بينما يتم استخدام عامل التشغيل لتصفية البيانات قبل التجميع.
مثال على استخدام المجموعة حسب المشغل:
| اسم المنتج | بلد المنشأ | السعر |
|---|---|---|
| التلفزيون | اليابان | 1000 |
| الهاتف المحمول | الصين | 500 |
| ثلاجة | ألمانيا | 1500 |
| الهاتف المحمول | الصين | 600 |
| التلفزيون | كوريا | 1200 |
مثال على استعلام مع تجميع:
حدد اسم المنتج ، بلد المنشأ ، المبلغ (السعر) كمبلغ عام
| من المنتجات | المجموعة حسب اسم المنتج ، بلد المنشأ | |
|---|---|---|
| النتيجة: | ||
| اسم المنتج | بلد المنشأ | المبلغ الإجمالي |
| الهاتف المحمول | الصين | 1100 |
| التلفزيون | اليابان | 1000 |
التلفزيون
كوريا
1200
ثلاجة
ألمانيا
1500
| في هذا المثال ، تم تجميع البيانات في العمودين" اسم المنتج "و" بلد المنشأ " ، وتم حساب المبلغ الإجمالي للأسعار لكل مجموعة. | استبعاد تعبيرات مماثلة | في سكل ، يتم استخدام مجموعة من التعبيرات لتجميع البيانات وفقا لمعايير معينة. ومع ذلك ، هناك حالات استثنائية لا يمكن فيها استخدام تعبير معين في المجموعة ويؤدي إلى حدوث خطأ. |
|---|---|---|
| إحدى هذه الحالات هي استخدام التعبيرات الضمنية في المجموعة بالتعبير ، أي التعبيرات التي لا تتطابق مع الأعمدة المحددة في البيان. يمكن أن تتضمن هذه التعبيرات العمليات الحسابية والوظائف ومجموعات الأعمدة والعمليات الأخرى. | سبب القيود المفروضة على استخدام التعبيرات الضمنية في المجموعة حسب البيان هو أن سكل لا يمكن تحديد بالضبط كيف ينبغي تجميع البيانات إذا كانت قيمة التعبير في كل صف قد تكون مختلفة. | لنفترض أن لدينا جدول " منتجات "يحتوي على الأعمدة" الاسم "و" السعر "و"الكمية". للعثور على مجموع الأسعار لكل منتج ، يمكننا استخدام التعبير التالي: |
| الاسم | السعر | الكمية |
| البرتقال | 100 | 10 |
التفاح
50
5
الموز
75
8
اختر الاسم ، المجموع (السعر) من المنتجات المجموعة حسب الاسم
في هذه الحالة ، سنقوم بتجميع المنتجات بالاسم وحساب مجموع السعر لكل منتج. ولكن ماذا يحدث إذا قررنا استخدام تعبير ينتج عنه قيم مختلفة لكل منتج? على سبيل المثال ، نريد إيجاد مجموع السعر مضروبا في الكمية لكل منتج:
اختر الاسم ، المجموع (السعر * الكمية) من مجموعة المنتجات حسب الاسم
في هذه الحالة ، التعبير" السعر * الكمية " بإرجاع قيم مختلفة لكل منتج ، و سكل لا يمكن تحديد كيفية تجميع البيانات من قبل ذلك. لذلك ، لا يمكن استخدام مثل هذا التعبير في المجموعة حسب البيان.
ومع ذلك ، هناك حلول لمثل هذه الحالات. يمكنك استخدام الاستعلامات الفرعية لحساب القيمة المطلوبة في استعلام منفصل ثم استخدامها في المجموعة حسب. على سبيل المثال:
اختر t.Name ، مجموع (ر. المجموع) من (حدد الاسم ، السعر * الكمية كمجموع من المنتجات) كما ر مجموعة من قبل t.Name
في هذه الحالة ، نحسب أولا التكلفة الإجمالية للمنتج في الاستعلام الفرعي ثم نجمع البيانات حسب اسم المنتج في الاستعلام الرئيسي.
وبالتالي ، فإن التعبيرات الضمنية هي استثناء للمجموعة حسب المشغل ، ولكن يمكن استخدام طرق أخرى لحل مشكلات مماثلة.
وظائف التجميع والتجميع
تعد الوظائف المجمعة أداة مهمة في العمل مع قواعد البيانات العلائقية. تسمح لك بتطبيق حسابات مختلفة على مجموعات القيم في أعمدة الجدول.
إحدى العمليات الرئيسية التي يتم إجراؤها باستخدام الوظائف المجمعة هي تجميع البيانات. يتيح لك التجميع دمج صفوف البيانات بناء على قيمة عمود واحد أو أكثر.
على سبيل المثال ، لنفترض أن لدينا جدول "أوامر" مع الأعمدة التالية: "العميل" ، "التاريخ" ، "المبلغ". لمعرفة المبلغ الإجمالي لطلبات كل عميل ، يمكنك استخدام دالة المجموع الكلي بالاشتراك مع المجموعة حسب المشغل:
حدد العميل ، المبلغ كـ "المبلغ الإجمالي للطلبات"
من أوامر
المجموعة حسب العميل;
نتيجة لتنفيذ هذا الاستعلام ، سيتم عرض السجلات حيث تتوافق كل مجموعة فريدة من القيم في عمود "العميل" مع المبلغ الإجمالي لأوامره.
تسمح لك الوظائف المجمعة أيضا بإجراء عمليات حسابية أخرى ، مثل حساب عدد القيم (العد) ، والبحث عن القيم القصوى والدنيا (الحد الأقصى ، الحد الأدنى) ، وحساب متوسط القيمة (المتوسط) ، وما إلى ذلك.
يتيح لك تجميع البيانات واستخدام الوظائف المجمعة تحليل كميات كبيرة من المعلومات واستخلاص استنتاجات مفيدة منها. يمكن استخدامها ، على سبيل المثال ، لتحديد العملاء الأكثر ربحية ، وتحديد متوسط مدة تنفيذ الطلبات في فئات مختلفة ، وتحليل ديناميكيات تغييرات البيانات بمرور الوقت ، وأكثر من ذلك بكثير.
تتيح لك معرفة الوظائف المجمعة والقدرة على استخدامها مع تجميع البيانات تحليل المعلومات بشكل فعال والحصول على نتائج قيمة من قاعدة البيانات.
فقدان التفاصيل أثناء التجميع
واحدة من العمليات الرئيسية في سكل هو تجميع البيانات باستخدام المجموعة عن طريق التعبير. يسمح لك التجميع بدمج البيانات وفقا لمعيار معين وأداء وظائف مجمعة مثل المجموع أو المتوسط أو الحد الأقصى أو الحد الأدنى للقيمة ، إلخ.، لكل مجموعة.
ومع ذلك ، عند استخدام المجموعة من قبل المشغل ، قد تكون هناك مشكلة في فقدان تفاصيل البيانات. عند تجميع البيانات ، يتم دمج جميع السجلات التي تنتمي إلى نفس المجموعة في صف واحد من النتائج. هذا يعني أنه قد يتم فقد المعلومات التفصيلية حول كل سجل.
لنفترض أن لدينا جدولا "الطلبات "مع الأعمدة التالية:" رقم الطلب " ، "تاريخ الطلب" ، "العميل" ، "مبلغ الطلب". إذا أردنا معرفة المبلغ الإجمالي للطلبات لكل عميل ، فيمكننا استخدام المجموعة بالتعبير على النحو التالي:
- حدد العميل ، المبلغ (مبلغ الطلب) كمبلغ إجمالي للطلبات
- من أوامر
المجموعة حسب العميل;
سيعرض هذا التعبير نتيجة حيث سيحتوي كل سطر على اسم العميل والمبلغ الإجمالي لأوامره. ومع ذلك ، إذا احتجنا أيضا إلى معرفة تفاصيل كل طلب ، فقد تفقد هذه المعلومات.
- لحل هذه المشكلة ، يمكننا استخدام الاستعلامات الفرعية أو الجداول المؤقتة. يمكننا أولا تجميع العملاء باستخدام المجموعة بالتعبير ، ثم دمج النتائج مع جدول الطلبات الأصلي للحصول على معلومات أكثر تفصيلا حول كل طلب.
- على سبيل المثال ، يمكننا استخدام الاستعلام التالي:
حدد الطلبات.رقم الطلب_ ، أوامر.تاريخ الطلب_ ، أوامر.العملاء ، أوامر.مبلغ الطلب
من أوامر
انضم
(حدد العميل ، المبلغ (مبلغ الطلب) كمبلغ إجمالي الطلب
من أوامر
- تجميع حسب العميل) كجدول موجز
- بناء على أوامر.العميل = جدول ملخص.العميل;
- يجمع هذا الاستعلام نتائج التجميع (الجدول المحوري) مع جدول الطلبات الأصلي باستخدام عامل الانضمام. الآن نحصل على جميع السجلات من جدول الطلبات ، ولكن فقط للعملاء المجمعة ومع معلومات حول كل طلب فردي.
وبالتالي ، عند استخدام المجموعة من قبل المشغل ، من الضروري مراعاة الخسارة المحتملة لتفاصيل البيانات. إذا كنت بحاجة إلى مزيد من المعلومات التفصيلية حول كل عنصر في مجموعة ، فيمكنك استخدام الاستعلامات الفرعية أو الجداول المؤقتة لدمج معلومات الملخص مع البيانات المصدر.
- الشروط في المجموعة حسب العرض
- عندما نستخدم المجموعة بالتعبير في استعلام سكل ، نقوم بدمج الصفوف بواسطة عمود معين أو مجموعة من الأعمدة. يتيح لنا ذلك تجميع البيانات وفقا لمعيار معين وإجراء عمليات مجمعة مثل حساب المبلغ وإيجاد متوسط القيمة وما إلى ذلك.
- ومع ذلك ، فإن الشروط في المجموعة حسب العرض محدودة بعدة قواعد:
يجب أن تكون الأعمدة المحددة في المجموعة حسب الجملة إما مجاميع أو محددة في قسم التحديد. لا يمكنك تجميع البيانات حسب الأعمدة التي لا يتم عرضها في التحديد الناتج.
لا يمكنك استخدام التعبيرات في جملة مجموعة. على سبيل المثال ، "المجموعة حسب السنة(التاريخ)" ستكون غير صالحة. بدلا من ذلك ، تحتاج إلى تحديد التعبير الكامل في قائمة التحديد ثم استخدامه في المجموعة حسب الجملة.
إذا تم تحديد عمود واحد فقط في المجموعة حسب الجملة ، فيمكننا استخدام الدوال التجميعية فقط أو تلك الأعمدة المحددة في المجموعة حسب الجملة في قسم التحديد. في هذه الحالة ، سيتم تمثيل كل مجموعة بصف واحد في التحديد الناتج.
قد يؤدي عدم الامتثال لهذه الشروط إلى حدوث خطأ في تنفيذ الاستعلام أو نتائج غير صحيحة. لذلك ، من المهم تحديد الأعمدة التي يجب تضمينها في المجموعة حسب الجملة بوضوح والوظائف المجمعة التي يجب تطبيقها على البيانات في قسم التحديد.
الكلمات الرئيسية والاستثناءات
يتم استخدام المجموعة حسب التعبير في سكل لتجميع نتائج الاستعلام بواسطة عمود معين أو مجموعة من الأعمدة. ومع ذلك ، هناك بعض الكلمات الرئيسية والاستثناءات التي لا يمكن استخدام المجموعة بالتعبير معها.
تحديد مميز: عند استخدام تعبير تحديد مميز في استعلام ، فإنه يسمح لك بالفعل بتحديد قيم فريدة فقط. لذلك ، ليست هناك حاجة لاستخدام المجموعة بالتعبير.
ترتيب حسب: إذا كان الترتيب حسب التعبير موجودا في الاستعلام ، فسيتم فرز نتائج الاستعلام بالفعل. لا ينبغي استخدام المجموعة بالتعبير مع الترتيب حسب ، لأن هذا قد يؤدي إلى نتائج غير متوقعة.
وجود: يتم استخدام تعبير وجود لتصفية نتائج التجميع باستخدام الشروط. ومع ذلك ، لا يمكن استخدامه إلا بالاقتران مع المجموعة بالتعبير. الاستثناء هو استخدام المصطلح مجموعة من دون التعبير وجود.
تجدر الإشارة أيضا إلى أنه يجب استخدام المجموعة بالتعبير جنبا إلى جنب مع وظائف التجميع مثل المجموع ، العد ، المتوسط ، إلخ. تتيح لك هذه الوظائف تحليل البيانات داخل كل مجموعة والحصول على المعلومات التي تحتاجها.
عند استخدام المجموعة بالتعبير ، من الضروري مراعاة الكلمات الرئيسية والاستثناءات المذكورة أعلاه من أجل صياغة الاستعلام بشكل صحيح والحصول على النتائج المتوقعة.
مزايا وعيوب التجميع
تجميع (أو المجموعة من قبل المشغل) هي واحدة من الأدوات الأكثر فائدة في سكل لتحليل البيانات. يسمح لك هذا المشغل بتقسيم نتائج الاستعلام إلى مجموعات بناء على قيم عمود واحد أو أكثر في الجدول.
مزايا التجميع:
وظائف مجمعة. تتيح لك المجموعة حسب المشغل استخدام وظائف مجمعة مثل المجموع ، العد ، المتوسط ، إلخ.، لحساب المجموع والكمية ومتوسط القيمة والخصائص الأخرى للبيانات داخل كل مجموعة. هذا يجعل من السهل تحليل البيانات والحصول على معلومات موجزة.
تقليل كمية البيانات. يتيح لك التجميع تقليل كمية البيانات المقدمة في الجدول المصدر عن طريق تقسيمها إلى مجموعات. هذا مفيد بشكل خاص عندما تحتاج إلى تحليل كميات كبيرة من البيانات والحصول على معلومات عامة لكل مجموعة.