কম্পিউটার টিউটোরিয়াল

MySQL-এ ইউজার লগইন টাইম প্রতি ঘন্টা গ্রুপ করে সাম্প্রতিক ঘন্টার রেকর্ড বের করা

প্রতি ঘন্টায় সর্বশেষ লগইন করা ইউজারের রেকর্ড বের করতে সাবকোয়েরি এবং 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 |
+--------+----------+---------------------+
  1. নির্দিষ্ট রেকর্ডের ভিত্তিতে গ্রুপিং ও যোগফল বের করার MySQL কোয়েরি

  2. MySQL কোয়েরি নাম দিয়ে গ্রুপ বাই করে কাউন্ট নতুন কলামে দেখানো

  3. MySQL-এ GROUP_CONCAT ব্যবহার করে নির্দিষ্ট কলামে ১ থাকা রেকর্ড এক সারিতে আনা

  4. MySQL-এ INFORMATION_SCHEMA.TABLES দিয়ে সর্বশেষ তৈরি টেবিলের নাম বের করা