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

दिन के अनुसार समूहीकृत माध्यिका की गणना करें

मुझे आशा है कि मैंने खुद को ढीला नहीं किया और चीजों को जटिल नहीं किया, लेकिन यहाँ मैं इसके साथ आया हूँ:

SELECT sq.created_at, avg(sq.price) as median_val FROM (
SELECT t1.row_number, t1.price, t1.created_at FROM(
SELECT IF(@prev!=d.created_at, @rownum:=1, @rownum:[email protected]+1) as `row_number`, d.price, @prev:=d.created_at AS created_at
FROM mediana d, (SELECT @rownum:=0, @prev:=NULL) r
ORDER BY created_at, price
) as t1 INNER JOIN  
(
  SELECT count(*) as total_rows, created_at 
  FROM mediana d
  GROUP BY created_at
) as t2
ON t1.created_at = t2.created_at
WHERE 1=1
AND t1.row_number>=t2.total_rows/2 and t1.row_number<=t2.total_rows/2+1
)sq
group by sq.created_at

मैंने यहां जो किया, वह मुख्य रूप से केवल पंक्ति संख्या को 1 पर रीसेट करने के लिए है जब तिथि बदलती है (यह create_at द्वारा ऑर्डर करना महत्वपूर्ण है) और इसमें तिथि शामिल है ताकि हम इसके द्वारा समूह बना सकें। कुल पंक्तियों की गणना करने वाली क्वेरी में मैंने create_at को भी शामिल किया है, ताकि हम दो उपश्रेणियों में शामिल हो सकें।



  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. मौजूदा मूल्य में मूल्य जोड़ने के लिए फ़ील्ड को कैसे अपडेट करें?

  3. PHP पीडीओ जांचें कि क्या विशिष्ट नाम वाली तालिका mySQL डेटाबेस में मौजूद है

  4. mysql_connect कब तक खुला रहता है?

  5. mysql नोडज में खंड में