مجموعة من "الآخر"، حيث تضمنت مجموعة مع مساهمة صغيرة في حقل "الآخر" - الخلية

StackOverflow https://stackoverflow.com/questions/821370

  •  03-07-2019
  •  | 
  •  

سؤال

وأود أن GROUP BY عنصر في مائدتي، والذي يحتوي على القيمة النقدية المرتبطة بها. هذا ويمكن العمل بها كنسبة مئوية، ولكن غالبا ما تكون هناك الكثير من العناصر في القائمة (وكثير جدا ليكون مفيدا، على سبيل المثال في الرسم البياني). ونتيجة لذلك، أود أن وضع تلك العناصر التي لها مساهمة في مجموعه أقل من يقول 5٪ إلى مجموعة "أخرى". أي أفكار؟

وذلك بفضل (باستخدام الخلية> V5)

هل كانت مفيدة؟

المحلول

ويبدو وكأنه UNION يمكن أن تساعد، على سبيل المثال (اعتمادا كيفية تنظيم الجدول الخاص بك، بطبيعة الحال):

SELECT itemname, SUM(percent) AS pc FROM items
GROUP BY itemtype
HAVING SUM(percent) >= 0.05
UNION
SELECT 'Other', SUM(*) FROM
  (SELECT SUM(percent) FROM items
   GROUP BY itemtype
   HAVING SUM(percent) < 0.05)

إذا لم يكن لديك حقل في المئة ولكن فقط (مثلا) حقل قيمة (ما يحتاج٪ يتم احتساب حيوي من 100 أضعاف جزء من قيمة عنصر إلى المجموع الكلي) يمكنك الحصول على المجموع الكلي من بعد آخر متداخلة SELECT، ولكن في مرحلة ما قد يكون من المفيد التحول إلى النهج الإجرائية حيث تلمح المشاركين الأخرى.

نصائح أخرى

ولقد طلبت عرض الأفكار. يمكنني أن أكتب في SQL بالنسبة لك، ولكن أتساءل (على أساس التصميم الخاص بشكل عام) قد لا تجد أنه من الأسهل أن تفعل أكثر من ذلك بقليل العمل في BL أو UI، مع مجموعة على سبيل المثال، لإنجاز نفس الشيء. لشيء واحد، فإن SQL تكون بالضرورة أكثر تعقيدا وأقل كفاءة مما كنت قد ترغب.

وإنشاء جدول مؤقت واثنين ادخال البيانات، واحدة من الاشياء الأساسي واحدة من المجموعة الأخرى، ثم ما عليك سوى اختيار كل من جدول مؤقت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top