ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
في هذا البرنامج التعليمي ، سنناقش بعض الطرق التي يمكننا من خلالها استخدام أو تنفيذ شرط HAVING في وظائف SQL التجميعية . يمكن أن يساعد استخدام هذا البند في وظائف SQL التجميعية بشكل كبير في تلخيص البيانات.
عبارة HAVING تشبه إلى حد كبير جملة WHERE ويمكن أيضًا تنفيذها معها.
سنناقش ارتباطاتهم واختلافاتهم من خلال تقديم أمثلة أثناء استعراضنا لهذا البرنامج التعليمي.
جدول المحتويات
تجميع حسب وأين البيانات في SQL
في مثالنا الأول ، سنناقش كيفية تنفيذ جملة WHERE و GROUP BY باستخدام الجدول النموذجي أدناه. يرجى ملاحظة أنه لا يمكننا استخدام جملة WHERE إلا مع الأعمدة الموجودة وليس في الدالات المجمعة وحدها.
لنفترض أننا نريد الحصول على إجمالي مبيعات المنتج استنادًا إلى عمود حجم المبيعات حيث تكون القيمة أكبر من 2 . من أجل الحصول على النتيجة ، يجب أن يكون أمرنا كالتالي:
أولاً ، نحدد اسم المنتج ونجمع مبلغ البيع للحصول على إجمالي المبيعات.
بعد ذلك ، استخدمنا عبارة WHERE هنا لأننا نحاول فقط الحصول على المنتجات التي يكون حجم المبيعات فيها أكبر من 2. يشير الأمر "GROUP BY ProductName" إلى أنه سيتم تجميع الصفوف الموجودة أسفل العمود ProductName في واحد.
من خلال تنفيذ مجموعة الأوامر الخاصة بنا ، سنرى أنه من بين جميع البيانات الموجودة ضمن عمودي ProductName و SaleAmount ، تم عرض المصباح والمروحة فقط . هذا لأنهم كانوا الوحيدين الذين لديهم مبلغ تخفيض أكبر من 2.
في هذا المثال ، تُستخدم عبارة WHERE لتصفية النتائج بعمود موجود ، وهو مبلغ المبيعات . لاحظ أيضًا أن عبارة WHERE تظهر قبل GROUP BY ولا يمكن استخدامها لتصفية الدالات التجميعية. من ناحية أخرى ، تظهر عبارة HAVING بعد GROUP BY وتُستخدم للتصفية استنادًا إلى دالة تجميعية.
GROUP BY And HAVING الشرط في SQL
في هذا المثال ، سنشرح الفرق بين جملة WHERE وعبارة HAVING . سنستخدم نفس الهدف الذي لدينا في المثال السابق حتى نتمكن من مقارنة النتائج وتقييمها.
دعنا نعرض أولاً المنتجات بمبيعاتها الإجمالية باستخدام الأمر أدناه. كما ترى ، لا يزال أمرنا الأول هو نفس أمرنا الأول الذي ينفذ عبارة WHERE .
إذا أردنا تنفيذ الأمرين الأولين ، فسنحصل على النتيجة التالية:
الآن ، لنفترض أننا نريد فقط عرض المنتجات التي يزيد إجمالي مبيعاتها عن 5. لا يمكننا استخدام عبارة WHERE نظرًا لأنه لا يمكن استخدامها إلا مع الأعمدة الموجودة. لذلك ، نحتاج إلى استخدام جملة HAVING لأننا سنقوم بالتصفية من دالة مجمعة.
لاحظ كيف نستخدم عبارة HAVING بعد GROUP BY بخلاف عبارة WHERE المستخدمة قبل GROUP BY. هذا لأن SQL سوف يقوم بتجميع السجلات قبل أن يقوم بتقييم عبارة HAVING .
دعنا بعد ذلك ننفذ هذه الأوامر مع HAVING SUM (SaleAmount)> 5 . بعد تحديد أننا نريد الحصول على المنتجات التي يزيد سعرها الإجمالي عن 5 فقط ، سنلاحظ أنه في جدول النتائج الحالي ، لن نرى القلم بعد الآن. هذا لأن إجماليه أقل من 5 .
باختصار ، عندما نريد تصفية البيانات من جدولنا بناءً على عمود موجود ، فإننا نستخدم جملة WHERE ، بينما عندما نريد تصفية البيانات من دالة مجمعة ، فإننا نستخدم عبارة HAVING .
HAVING And Where في SQL Server Management Studio (SSMS)
الآن ، سنمضي قدمًا من خلال مناقشة وإظهار كيف يمكننا تنفيذ جملة HAVING في SQL Server Management Studio (SSMS). سنقوم أيضًا بمعالجة الاختلاف بين جملة HAVING و WHERE من خلال تقديم أمثلة.
الموضح أدناه هو نموذج بياناتنا SalesOrderHeader. تتكون هذه البيانات من 100 صف. على سبيل المثال ، نريد الحصول على TotalSale بواسطة معرف العميل حيث يكون TotalSale أكبر من 10000 . لاحظ أن إجمالي البيع يستند إلى مجموع قيم العمود TotalDue .
أولاً ، اسمحوا لي أن أوضح لماذا لا يمكننا استخدام جملة WHERE عندما نريد التصفية على دالة مجمعة بناءً على المثال أعلاه.
سنستخدم مجموعة عينة من الأوامر من الصورة أدناه. كما ترى ، لدينا من الناحية الفنية نفس مجموعة الأوامر مثل تلك التي لدينا من مثالنا الأول.
ومع ذلك ، عند النقر فوق "تنفيذ" في الزاوية العلوية اليسرى ، سيؤدي ذلك إلى حدوث خطأ لأننا لا نستطيع استخدام جملة WHERE بمفردها عندما نقوم بالتصفية على الوظيفة التجميعية.
لتصحيح الخطأ ، نحتاج إلى تصفية النتيجة باستخدام جملة HAVING بدلاً من جملة WHERE . يجب أن تكون مجموعتنا الجديدة من الأوامر مشابهة للصورة أدناه.
الآن ، يمكننا أن نرى أنه قد تم تصحيح الخطأ الخاص بنا ويحتوي على النتائج لكل معرف عميل مع إجمالي TotalSale أكبر من 10000 .
مرة أخرى ، تُستخدم عبارة WHERE دائمًا قبل عبارة GROUP BY ، بينما تُستخدم عبارة HAVING دائمًا بعد عبارة GROUP BY .
استخدام كل من HAVING و WHERE الشرط في SQL
في هذا المثال ، لنفترض أننا نريد استخدام جملة WHERE و HAVING في نفس الوقت. دعنا نحاول الحصول على TotalSale بواسطة معرف العميل حيث يكون TotalSale أكبر من 10000 ولكن فقط مع العملاء حيث يكون معرف المنطقة الخاص بهم مساويًا لـ 1 .
نظرًا لأننا نرغب في تصفية النتائج مع العملاء الذين لديهم رقم 1 كمعرّف المنطقة الخاصة بهم ، فسنستخدم جملة WHERE. لذلك يجب أن يكون أمرنا هو نفسه الأمر السابق. مرة أخرى ، قمنا بإضافة جملة WHERE قبل عبارة GROUP BY.
في الوقت الحالي ، لا يمكننا رؤية فرق كبير بين النتيجة السابقة والنتيجة الجديدة. ومع ذلك ، إذا نظرت عن كثب إلى الزاوية اليمنى السفلية ، فلدينا الآن 64 صفًا فقط مقارنةً بالصفوف السابقة التي تحتوي على 505 صفوفًا من البيانات. ذلك لأن النتائج تتم تصفيتها بناءً على معرف المنطقة أيضًا.
خاتمة
للتلخيص ، يمكننا فقط استخدام جملة WHERE مع الأعمدة الموجودة. إذا احتجنا إلى التصفية باستخدام وظائف مجمعة ، فنحن بحاجة إلى استخدام جملة HAVING بدلاً من ذلك.
يمكن أن يوفر استخدام بند HAVING في وظائف SQL التجميعية وطرق التدرب على تنفيذ بند HAVING وعبارة WHERE معًا راحة المستخدمين عند العمل على عدد كبير من البيانات أو السجلات.
آمل أن أكون قد زودتك بمعلومات وفهم كافيين فيما يتعلق بكيفية استخدام شرط HAVING في وظائف SQL التجميعية. إذا كنت ترغب في معرفة المزيد عن هذا الموضوع والمحتويات الأخرى ذات الصلة ، يمكنك بالتأكيد التحقق من قائمة الروابط ذات الصلة أدناه.
أتمنى لك كل خير،
حافظ
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.
في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.
سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.
في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.
أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.
تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.
سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX في توفير النتائج.
إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.
ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته