تجميع الصفوف في SQL باستخدام SUM () للقيم المميزة
في استعلام MySQL الخاص بك، تريد حساب مجموع القيمة في جدول التحويلات مع التأكد من حساب كل صف مرة واحدة فقط. ولتحقيق ذلك، فإنك تستخدم الكلمة الأساسية DISTINCT بالتزامن مع الدالة SUM(). ومع ذلك، فإنك تواجه مشكلة حيث تعمل الصفوف المكررة على تضخيم نتيجة SUM().
لحل هذه المشكلة، ضع في اعتبارك علاقات المفاتيح الأساسية في جداولك. إذا كانversions.id هو المفتاح الأساسي لجدول التحويلات وكان stats.id هو المفتاح الأساسي لجدول الإحصائيات، فإن كل Conversions.id يكون فريدًا بالنسبة إلى links.id واحد.
استنادًا إلى هذا الفهم، يمكنك إعادة هيكلة الاستعلام الخاص بك لحساب مجموع قيمة التحويلات لكل ملف converter.id مميز، ثم تقسيم النتيجة على إجمالي عدد الصفوف داخل كل مجموعة links.id. سيوفر لك هذا المجموع المطلوب من القيم المميزة.
إليك الاستعلام المعدل:
SELECT links.id,
count(DISTINCT stats.id) as clicks,
count(DISTINCT conversions.id) as conversions,
sum(conversions.value)*count(DISTINCT conversions.id)/count(*) as conversion_value
FROM links
LEFT OUTER JOIN stats ON links.id = stats.parent_id
LEFT OUTER JOIN conversions ON links.id = conversions.link_id
GROUP BY links.id
ORDER BY links.created desc;
يجب أن يحسب هذا الاستعلام بشكل فعال مجموع قيمة التحويلات لكل تحويلات مميزة.id داخل كل مجموعة links.id، مما يضمن حساب كل صف مرة واحدة فقط.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3