आप इसके लिए जॉइन कंडीशन वाली सबक्वायरी का उपयोग कर सकते हैं। वाक्य रचना इस प्रकार है -
अपना TablevariableName चुनें।*FROM(से MAX(UNIX_TIMESTAMP(yourDateTimeColumnName) चुनें) किसी भी उपनाम के रूप में getLatestHour GROUP by HOUR(UserLoginDateTime)) yourOuterVariableNameJOIN yourTableName YourTablevariableNameon UNIX_TIMESTAMP(yourDateTimeVColumnEDATE); पूर्व>उपरोक्त सिंटैक्स और प्राप्त किए जाने वाले परिणाम को समझने के लिए, आइए एक तालिका बनाएं। तालिका बनाने की क्वेरी इस प्रकार है -
mysql> टेबल बनाएं getLatestHour -> (-> UserId int, -> UserName varchar(20), -> UserLoginDateTime datetime -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.68 सेकंड)अब आप इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डाल सकते हैं। रिकॉर्ड उपयोगकर्ता लॉगिन दिनांक और समय सहित उपयोगकर्ता रिकॉर्ड हैं। क्वेरी इस प्रकार है -
mysql> getLatestHour मान (100, 'जॉन', '2019-02-04 10:55:51') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.27 सेकंड) mysql> getLatestHour मानों में डालें (101,' लैरी','2019-02-04 12:30:40');क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकंड)mysql> getLatestHour मान (102,'कैरोल','2019-02-04 12:40) में डालें:46'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.20 सेकंड) mysql> getLatestHour मान (103, 'डेविड', '2019-02-04 12:44:54') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.17 सेकंड) )mysql> getLatestHour मान (104, 'बॉब', '2019-02-04 12:47:59') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.15 सेकंड)चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है -
mysql> getLatestHour से *चुनें;निम्न आउटपुट है -
<पूर्व>+----------+----------+---------------------+| उपयोगकर्ता आईडी | उपयोगकर्ता नाम | UserLoginDateTime |+-----------+----------+---------------------+| 100 | जॉन | 2019-02-04 10:55:51 || 101 | लैरी | 2019-02-04 12:30:40 || 102 | कैरल | 2019-02-04 12:40:46 || 103 | डेविड | 2019-02-04 12:44:54 || 104 | बॉब | 2019-02-04 12:47:59 |+----------+----------+--------------------- ---+5 पंक्तियाँ सेट में (0.00 सेकंड)
यहां प्रति घंटे डेटा समूहित करने और हाल के घंटे का रिकॉर्ड प्राप्त करने की क्वेरी है। क्वेरी इस प्रकार है -
mysql> सेलेक्ट tbl1.* -> FROM (-> सेलेक्ट MAX(UNIX_TIMESTAMP(UserLoginDateTime)) AS m1 -> FROM getLatestHour -> GROUP BY HOUR (UserLoginDateTime) -> ) var1 -> जॉइन getLatestHour tbl1 -> UNIX_TIMESTAMP पर (UserLoginDateTime) =var1.m1 -> जहां दिनांक (UserLoginDateTime) ='2019-02-04';
निम्न आउटपुट है -
<पूर्व>+----------+----------+---------------------+| उपयोगकर्ता आईडी | उपयोगकर्ता नाम | UserLoginDateTime |+-----------+----------+---------------------+| 100 | जॉन | 2019-02-04 10:55:51 || 104 | बॉब | 2019-02-04 12:47:59 |+----------+----------+--------------------- ---+2 पंक्तियाँ सेट में (0.05 सेकंड)