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.كيف أتمكن من استخراج القيمة الوسطى؟ اقتباس
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 اقتباس
السؤال
Simoh
أريد حساب الوسيط أو القيمة الوسطى للعناصر الموجودة بجدول على Mysql يتوفر على مجموعة قيم عددية، وهذا هو الجدول:
لكن عند استعمال دالة avg حصلت على القيمة 5، مع العلم أن القيمة الوُسطى لحقل val هي 4؟
القيم : 2 2 3 4 7 8 9، تكون القيمة الوُسطى إذن هي 4.
كيف أتمكن من استخراج القيمة الوسطى؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.