প্রতি ঘন্টায় সর্বশেষ লগইন করা ইউজারের রেকর্ড বের করতে সাবকোয়েরি এবং JOIN ব্যবহার করতে হয়। সিনট্যাক্স:
SELECT yourTableVariable.* FROM ( SELECT MAX(UNIX_TIMESTAMP(yourDateTimeColumnName)) AS anyAliasName FROM yourTableName GROUP BY HOUR(UserLoginDateTime) ) yourOuterVariable JOIN yourTableName yourTableVariable ON UNIX_TIMESTAMP(yourDateTimeColumnName) = yourOuterVariable.yourAliasName WHERE DATE(yourDateTimeColumnName) = 'yourDateValue';
উদাহরণ
টেবিল getLatestHour তৈরি এবং ৫ রো ইনসার্ট করি (১০:৫৫, ১২:৩০, ১২:৪০, ১২:৪৪, ১২:৪৭)।
কোয়েরি (২০১৯-০২-০৪ তারিখের জন্য):
mysql> SELECT tbl1.* FROM ( SELECT MAX(UNIX_TIMESTAMP(UserLoginDateTime)) AS m1 FROM getLatestHour GROUP BY HOUR(UserLoginDateTime) ) var1 JOIN getLatestHour tbl1 ON UNIX_TIMESTAMP(UserLoginDateTime) = var1.m1 WHERE DATE(UserLoginDateTime) = '2019-02-04';
ফলাফল (ঘন্টা ১০ এবং ১২-এর সর্বশেষ লগইন):
+--------+----------+---------------------+ | UserId | UserName | UserLoginDateTime | +--------+----------+---------------------+ | 100 | John | 2019-02-04 10:55:51 | | 104 | Bob | 2019-02-04 12:47:59 | +--------+----------+---------------------+