Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL के साथ माध्यिका की गणना करने का सरल तरीका

मारियाडीबी/माईएसक्यूएल में:

SELECT AVG(dd.val) as median_val
FROM (
SELECT d.val, @rownum:[email protected]+1 as `row_number`, @total_rows:[email protected]
  FROM data d, (SELECT @rownum:=0) r
  WHERE d.val is NOT NULL
  -- put some where clause here
  ORDER BY d.val
) as dd
WHERE dd.row_number IN ( FLOOR((@total_rows+1)/2), FLOOR((@total_rows+2)/2) );

स्टीव कोहेन बताते हैं, कि पहले पास के बाद, @rownum में पंक्तियों की कुल संख्या होगी। इसका उपयोग माध्यिका निर्धारित करने के लिए किया जा सकता है, इसलिए किसी दूसरे पास या शामिल होने की आवश्यकता नहीं है।

साथ ही AVG(dd.val) और dd.row_number IN(...) रिकॉर्ड की संख्या सम होने पर माध्यिका को सही ढंग से उत्पन्न करने के लिए उपयोग किया जाता है। तर्क:

SELECT FLOOR((3+1)/2),FLOOR((3+2)/2); -- when total_rows is 3, avg rows 2 and 2
SELECT FLOOR((4+1)/2),FLOOR((4+2)/2); -- when total_rows is 4, avg rows 2 and 3

अंत में, MariaDB 10.3.3+ में एक MEDIAN फ़ंक्शन शामिल है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. फ्रेशर + अनुभवी के लिए सामान्य MySql साक्षात्कार प्रश्न और उत्तर

  2. पीडीओ का उपयोग करके MySQL से संख्यात्मक प्रकार कैसे प्राप्त करें?

  3. MySQL में केस स्टेटमेंट का उपयोग कैसे करें?

  4. MySQL:किसी अन्य फ़ील्ड के आधार पर अनुक्रम कॉलम जोड़ें

  5. MySQL सीमा के भीतर निर्देशांक का चयन करें