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

MySQL-এ GROUP BY DATE() ব্যবহার করে ডISTINCT তারিখের রেকর্ড বের করা

GROUP BY DATE(column) ব্যবহার করে একই তারিখের একাধিক রো থেকে শুধু একটি রো বের করা যায়।

টেবিল ও ডেটা:

mysql> CREATE TABLE DemoTable1996 (
    ShippingDate DATETIME,
    CustomerName VARCHAR(20)
);
mysql> INSERT INTO DemoTable1996 VALUES
    ('2019-12-21 10:45:00','Chris'),
    ('2019-12-21 12:10:00','David'),
    ('2019-12-20 12:10:00','Bob');

তარিখ ভিত্তিক গ্রুপ (প্রতি তারিখে প্রথম রো):

mysql> SELECT * FROM DemoTable1996 GROUP BY DATE(ShippingDate);

আউটপুট:

+---------------------+--------------+
| ShippingDate        | CustomerName |
+---------------------+--------------+
| 2019-12-21 10:45:00 | Chris        |
| 2019-12-20 12:10:00 | Bob          |
+---------------------+--------------+

সতর্কতা

  • MySQL ৫.৭+ এ ONLY_FULL_GROUP_BY SQL মোড ডিফল্ট অন। এতে নন-এগ리게েটেড কলাম সিলেক্ট করলে এরর দেয়।
  • সঠিক পদ্ধতি: ANY_VALUE(CustomerName) বা সাবকোয়েরি ব্যবহার করুন।

সঠিক পদ্ধতি (সকল ভার্সনে কাজ করে)

SELECT d1.* FROM DemoTable1996 d1
JOIN (
    SELECT DATE(ShippingDate) AS dt, MIN(ShippingDate) AS min_dt
    FROM DemoTable1996
    GROUP BY DATE(ShippingDate)
) d2 ON DATE(d1.ShippingDate) = d2.dt AND d1.ShippingDate = d2.min_dt;

এটি নিশ্চিত করে প্রতিটি তারিখের সবচেয়ে প্রথম রো আপনি পাবেন।

  1. MySQL-এ RAND() দিয়ে র‍্যান্ডম সারি নির্বাচন করে নির্দিষ্ট কলাম অনুযায়ী সাজানো

  2. MySQL에서 LIKE로 특정 이름(예: Johnson으로 시작) 검색하기

  3. MySQL에서 예약어 'from'을 컬럼명으로 쓰려면 백틱으로 감싸기

  4. MySQL-এ LEFT() এবং SUBSTRING_INDEX() ব্যবহার করে নামের প্রথম অক্ষর (Initials) বের করা