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

MySQL:रिकॉर्ड के बीच औसत अंतराल

सहज रूप से, आप जो पूछ रहे हैं वह पहली और आखिरी तारीखों के बीच के अंतराल के बराबर होना चाहिए, जो कि माइनस 1 की तारीखों की संख्या से विभाजित होता है।

मुझे और विस्तार से समझाएं। कल्पना कीजिए कि तिथियां एक रेखा पर बिंदु हैं (+ दिनांक मौजूद हैं, - तारीखें गायब हैं, पहली तारीख 12वीं है, और मैंने उदाहरण के लिए आखिरी तारीख को बदलकर 24 दिसंबर कर दिया है):

++----+---+-+

अब, आप वास्तव में क्या करना चाहते हैं, अपनी तिथियों को इन पंक्तियों के बीच समान रूप से रखें, और पता करें कि उनमें से प्रत्येक के बीच कितना समय है:

+--+--+--+--+

ऐसा करने के लिए, आप बस अंतिम और पहले दिनों के बीच के दिनों की संख्या लेते हैं, इस स्थिति में 24 - 12 =12, और इसे उस अंतराल की संख्या से विभाजित करें जिसे आपको खाली करना है, इस मामले में 4:12 / 4 = 3

एक MySQL क्वेरी के साथ

SELECT DATEDIFF(MAX(dt), MIN(dt)) / (COUNT(dt) - 1) FROM a;

यह इस तालिका पर काम करता है (आपके मूल्यों के साथ यह 2.75 देता है):

CREATE TABLE IF NOT EXISTS `a` (
  `dt` date NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `a` (`dt`) VALUES
('2010-12-12'),
('2010-12-13'),
('2010-12-18'),
('2010-12-22'),
('2010-12-24');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQLI - जहां सरणी में

  2. कमांड लाइन से, तर्कों के साथ एक mysql संग्रहीत कार्यविधि को कैसे कॉल करें?

  3. मैं इस सरणी संरचना को HTML रूप में कैसे बनाऊंगा?

  4. INT कॉलम में NULL मान डालें

  5. सत्र चर:कितना डेटा बहुत अधिक है?