Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में TIME कॉलम पर औसत (Average) निकालें: SEC_TO_TIME(AVG(TIME_TO_SEC()))

MySQL में TIME टाइप कॉलम का औसत (Average) समय प्रारूप में प्राप्त करना

समस्या:

AVG() सीधे TIME कॉलम पर काम नहीं करता। सेकंड में बदलकर औसत निकालें, फिर वापस TIME में।

सिंटैक्स:

SELECT SEC_TO_TIME(AVG(TIME_TO_SEC(yourColumnName))) AS anyVariableName 
FROM yourTableName;

चरण-दर-चरण:

  1. TIME_TO_SEC(time) → समय को कुल सेकंड में बदलें
  2. AVG(seconds) → औसत सेकंड निकालें
  3. SEC_TO_TIME(avg_seconds) → वापस TIME फॉर्मेट (HH:MM:SS) में

व्यावहारिक उदाहरण

1. टेबल बनाएं:

mysql> CREATE TABLE AverageOnTime (PunchInTime TIME); 
Query OK, 0 rows affected (0.61 sec)

2. समय डेटा डालें:

mysql> INSERT INTO AverageOnTime VALUES('00:00:40');
mysql> INSERT INTO AverageOnTime VALUES('00:02:50');
mysql> INSERT INTO AverageOnTime VALUES('00:03:30');
mysql> INSERT INTO AverageOnTime VALUES('00:04:55');

3. सभी रिकॉर्ड:

+-------------+ 
| PunchInTime | 
+-------------+ 
| 00:00:40    | 
| 00:02:50    | 
| 00:03:30    | 
| 00:04:55    | 
+-------------+ 
4 rows in set (0.00 sec)

4. औसत समय निकालें:

mysql> SELECT SEC_TO_TIME(AVG(TIME_TO_SEC(PunchInTime))) AS Average 
    -> FROM AverageOnTime;
+---------------+ 
| Average       | 
+---------------+ 
| 00:02:58.7500 | 
+---------------+ 
1 row in set (0.08 sec)

गणना विवरण:

  • 40 सेकंड
  • 170 सेकंड (2:50)
  • 210 सेकंड (3:30)
  • 295 सेकंड (4:55)
  • कुल: 715 सेकंड
  • औसत: 715/4 = 178.75 सेकंड = 2 मिनट 58.75 सेकंड

अन्य समय एग्रीगेशन:

ऑपरेशनक्वेरी
कुल समय (समय जोड़ना)SEC_TO_TIME(SUM(TIME_TO_SEC(col)))
न्यूनतम समयMIN(col) (सीधे काम करता है)
अधिकतम समयMAX(col) (सीधे काम करता है)
मेडियन समयविंडो फंक्शन या सबक्वेरी से

DATETIME कॉलम के लिए:

-- केवल समय भाग का औसत
SELECT SEC_TO_TIME(AVG(TIME_TO_SEC(TIME(datetime_col)))) FROM table;

-- पूर्ण डेटाटाइम औसत (जटिल, आमतौर पर अर्थहीन)

प्रदर्शन:

  • TIME_TO_SEC हर पंक्ति पर लागू होता है — इंडेक्स उपयोग नहीं कर सकता
  • बड़े डेटासेट के लिए मैटेरियलाइज्ड व्यू या सारांश टेबल विचार करें
  1. - MySQL में किसी कॉलम में विशिष्ट मान की घटनाओं को गिनना

    MySQL में किसी कॉलम में किसी विशिष्ट मान की घटनाओं (occurrences) को गिनने के लिए COUNT(*) के साथ WHERE क्लॉज का उपयोग करें। सिंटैक्स SELECT COUNT(*) FROM table_name WHERE column_name = specific_value; व्यावहारिक उदाहरण 1. टेबल बनाएं और डेटा डालें INSERT INTO DemoTable VALUES (100, John), (101,

  1. - MySQL में कॉलम का नाम कैसे खोजें?

    MySQL में कॉलम नाम खोजने के दो तरीके: SHOW COLUMNS और INFORMATION_SCHEMA MySQL में किसी टेबल के कॉलम नाम प्राप्त करने के दो मुख्य तरीके हैं: SHOW COLUMNS कमांड और INFORMATION_SCHEMA.COLUMNS टेबल। उदाहरण टेबल बनाना CREATE TABLE DemoTable603 ( ClientId INT NOT NULL AUTO_INCREMENT, ClientName

  1. - MySQL में समय अंतर निकालें: NOW() और INTERVAL के साथ

    MySQL में NOW() और INTERVAL का उपयोग करके वर्तमान समय से निर्दिष्ट अवधि पहले/बाद के रिकॉर्ड ढूंढ सकते हैं। उदाहरण: पिछले 5 घंटे में आगमन समय 1. टेबल बनाएं CREATE TABLE DemoTable1570 (ArrivalTime DATETIME); 2. डेटा डालें INSERT INTO DemoTable1570 VALUES(2019-10-15 16:10:00); 3. वर्तमान समय मान