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

MySQL-এ নির্দিষ্ট তারিখের রেকর্ড গণনা করা (COUNT + DATE)

DATETIME বা DATE কলামে নির্দিষ্ট তারিখের রেকর্ড কতটুকু আছে তা গণনা করতে DATE() ফাংশন বা সরাসরি তারিখ তুলনা ব্যবহার করা হয়।

টেবিল ও ডেটা তৈরি

mysql> CREATE TABLE DemoTable1946 (ShippingDate DATE);

mysql> INSERT INTO DemoTable1946 VALUES
    ('2019-12-11'), ('2018-12-11'), ('2017-12-11'),
    ('2019-04-22'), ('2019-12-11'), ('2015-12-11');

ডেটা যাচাই

mysql> SELECT * FROM DemoTable1946;
+--------------+
| ShippingDate |
+--------------+
| 2019-12-11   |
| 2018-12-11   |
| 2017-12-11   |
| 2019-04-22   |
| 2019-12-11   |
| 2015-12-11   |
+--------------+

কোয়েরি: '2019-12-11' তারিখের কাউন্ট

mysql> SELECT COUNT(*) FROM DemoTable1946
    WHERE DATE(ShippingDate) = '2019-12-11';

আউটপুট:

+----------+
| count(*) |
+----------+
|        2 |
+----------+

বিকল্প পদ্ধতিসমূহ

পদ্ধতিকোয়েরিটিপ্পণী
DATE() ফাংশনWHERE DATE(ShippingDate) = '2019-12-11'DATETIME কলামের জন্য উপযোগী
সরাসরি তুলনাWHERE ShippingDate = '2019-12-11'DATE কলামের জন্য যথেষ্ট (ইন্ডেক্স ব্যবহার করে)
রেঞ্জ কোয়েরি (সেরা পারফরম্যান্স)WHERE ShippingDate >= '2019-12-11' AND ShippingDate < '2019-12-12'ইন্ডেক্স ব্যবহার করে, DATETIME-এও কাজ করে

পারফরম্যান্স টিপ

  • DATE(ShippingDate) ফাংশন কল করলে ইন্ডেক্স ব্যবহার হয় না (non-sargable)।
  • বড় টেবিলে সবসময় **রেঞ্জ কোয়েরি** (>= AND <) ব্যবহার করুন।
  • ShippingDate কলামে ইন্ডেক্স থাকতে হবে।

গ্রুপ বাই করে সব তারিখের কাউন্ট

SELECT ShippingDate, COUNT(*) AS cnt
FROM DemoTable1946
GROUP BY ShippingDate
ORDER BY cnt DESC;
  1. Java-এ JDBC ResultSetMetaData ব্যবহার করে MySQL টেবিলের কলাম সংখ্যা বের করা

  2. MySQL에서 CURDATE()로 오늘 날짜와 일치하는 레코드 업데이트하기

  3. MySQL-এ DATE_ADD ব্যবহার করে টেবিলের তারিখ আপডেট করা (বছর যোগ/বিয়োগ)

  4. MySQL-এ নির্দিষ্ট মান 가진 কলামের সংখ্যা গণনা করা