البرمجة

تفادي أخطاء SQL: دوال التجميع وعبارة GROUP BY

الخطأ الذي تواجهه ينبع من الاستعلام الداخلي الذي تقوم بتنفيذه لاستخلاص بيانات محددة من الجدول Staging.SabreAssignedCrew. يبدو أنك تحاول استخدام دالة تجميعية مثل SUM دون تضمين الحقل UpdateID في عبارة GROUP BY الخاصة بك.

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

بمعنى آخر، SQL يريد منك أن تحدد الحقول التي لم يتم تجميعها في دوال التجميع مثل SUM والتي يجب عليه أن يستخدمها لتجميع البيانات. وعندما يتم ذلك، يمكنك استخدام الحقل UpdateID في الاستعلام الخارجي دون أي مشاكل.

لتصحيح هذا الخطأ، عليك ببساطة إضافة UpdateID إلى عبارة GROUP BY الخاصة بك في الاستعلام الداخلي. يجب أن تبدو عبارتك مثل هذا:

sql
SELECT StagingFlight, StagingCabinCrew FROM ( SELECT *, Airline + CAST(FlightNumber AS VARCHAR) + Suffix AS StagingFlight, ROW_NUMBER() OVER(PARTITION BY Airline + CAST(FlightNumber AS VARCHAR) + Suffix ORDER BY UpdateId DESC) AS StageRowNumber, SUM(CASE WHEN CREWTYPE = 'F' THEN 1 ELSE 0 END) AS StagingCabinCrew FROM Staging.SabreAssignedCrew GROUP BY UpdateID -- إضافة هذا السطر ) sac;

بعد هذا التغيير، يجب أن تتمكن من تنفيذ الاستعلام بنجاح دون أي أخطاء، وستتمكن من استخدام الحقل UpdateID بحرية في الاستعلام الخارجي دون أي مشاكل.

المزيد من المعلومات

بالطبع، دعني أواصل المقال لمساعدتك في فهم أعمق لهذا الموضوع.

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

  1. دوال التجميعية (Aggregate Functions): تستخدم دوال التجميعية مثل SUM و COUNT و AVG لحساب قيم مجمعة من البيانات في جداول قاعدة البيانات. عند استخدام دالة تجميعية، يجب عليك تحديد الحقول التي يجب تجميع البيانات بناءً عليها.

  2. عبارة GROUP BY: تستخدم عبارة GROUP BY لتجميع الصفوف في نتائج الاستعلام بناءً على قيم محددة في حقل معين. عند استخدام دوال تجميعية، يجب دائمًا تضمين عبارة GROUP BY لتحديد كيف يجب تجميع البيانات.

  3. الاستعلامات الداخلية (Subqueries): في الحالة الحالية، كنت تستخدم استعلامًا داخليًا لتحديد بعض الحقول وحساب بعض القيم قبل استرجاع النتيجة النهائية. الاستعلامات الداخلية مفيدة لتنظيم الاستعلامات المعقدة وتقسيمها إلى أجزاء أصغر وأكثر إدارة.

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

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر