Simoh نشر 18 ديسمبر 2015 أرسل تقرير مشاركة نشر 18 ديسمبر 2015 أريد حساب الوسيط أو القيمة الوسطى للعناصر الموجودة بجدول على Mysql يتوفر على مجموعة قيم عددية، وهذا هو الجدول:id | val -------- 1 4 2 7 3 2 4 2 5 9 6 8 7 3لكن عند استعمال دالة avg حصلت على القيمة 5، مع العلم أن القيمة الوُسطى لحقل val هي 4؟القيم : 2 2 3 4 7 8 9، تكون القيمة الوُسطى إذن هي 4.كيف أتمكن من استخراج القيمة الوسطى؟ اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 E.Nourddine نشر 19 ديسمبر 2015 أرسل تقرير مشاركة نشر 19 ديسمبر 2015 للحصول على القيمة الوُسطى وليس المعدّل -avg- لمجموع الأعداد، نحتاج أولا لترتيب الأعداد تصاعديا، ثم حساب عدد الأعداد وإضافة 1 للقيمة المحصّل عليها، وفي الأخير قسمة العدد على 2:SELECT avg(t1.val) as median_val FROM ( SELECT @rownum:=@rownum+1 as `row_number`, d.val FROM data d, (SELECT @rownum:=0) r WHERE 1 ORDER BY d.val ) as t1, ( SELECT count(*) as total_rows FROM data d WHERE 1 ) as t2 WHERE 1 AND t1.row_number in ( floor((total_rows+1)/2), floor((total_rows+2)/2) );والسطرين التاليين يوضّحان بشكل عملي، تفسير الطريقة:SELECT floor((3+1)/2),floor((3+2)/2);#total_rows is 3, so avg row_numbers 2 and 2 SELECT floor((4+1)/2),floor((4+2)/2);#total_rows is 4, so avg row_numbers 2 and 3 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Simoh
أريد حساب الوسيط أو القيمة الوسطى للعناصر الموجودة بجدول على Mysql يتوفر على مجموعة قيم عددية، وهذا هو الجدول:
لكن عند استعمال دالة avg حصلت على القيمة 5، مع العلم أن القيمة الوُسطى لحقل val هي 4؟
القيم : 2 2 3 4 7 8 9، تكون القيمة الوُسطى إذن هي 4.
كيف أتمكن من استخراج القيمة الوسطى؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.