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

MySQL-এ নির্দিষ্ট সংখ্যকবার উপস্থিত ফিল্ড ফেরত দেওয়া: DISTINCT এবং HAVING

MySQL-এ নির্দিষ্ট সংখ্যকবার (যেমন ১-এর বেশি) উপস্থিত ফিল্ড ফেরত দেওয়ার জন্য DISTINCT, GROUP BY এবং HAVING ক্লজ ব্যবহার করা হয়।

সিনট্যাক্স

SELECT DISTINCT yourColumnName, COUNT(yourColumnName)
FROM yourTableName
WHERE yourColumnName LIKE 'J%'
GROUP BY yourColumnName
HAVING COUNT(*) > 1
ORDER BY yourColumnName;

টেবিল তৈরি ও ডেটা ইনসার্ট

CREATE TABLE DemoTable1500 (
    Name VARCHAR(20)
);

INSERT INTO DemoTable1500 VALUES('Adam');
INSERT INTO DemoTable1500 VALUES('John');
INSERT INTO DemoTable1500 VALUES('Mike');
INSERT INTO DemoTable1500 VALUES('John');
INSERT INTO DemoTable1500 VALUES('Jace');
INSERT INTO DemoTable1500 VALUES('Jace');
INSERT INTO DemoTable1500 VALUES('Jackie');

সকল রেকর্ড দেখানো

SELECT * FROM DemoTable1500;

আউটপুট

+--------+
| Name   |
+--------+
| Adam   |
| John   |
| Mike   |
| John   |
| Jace   |
| Jace   |
| Jackie |
+--------+
7 rows in set (0.00 sec)

J অক্ষর দিয়ে শুরু হয়ে ১-এর বেশি বার উপস্থিত নাম বের করা

SELECT DISTINCT Name, COUNT(Name)
FROM DemoTable1500
WHERE Name LIKE 'J%'
GROUP BY Name
HAVING COUNT(*) > 1
ORDER BY Name;

আউটপুট

+------+-------------+
| Name | COUNT(Name) |
+------+-------------+
| Jace |             2 |
| John |             2 |
+------+-------------+
2 rows in set (0.00 sec)

ব্যাখ্যা: WHERE Name LIKE 'J%' শুধু 'J' দিয়ে শুরু হওয়া নামগুলো ফিল্টার করে। GROUP BY Name একই নামগুলো গ্রুপ করে। HAVING COUNT(*) > 1 শুধু ১-ের বেশিবার উপস্থিত গ্রুপগুলো রাখে। DISTINCT এখানে অপ্রয়োজনীয় কারণ GROUP BY ইতিমধ্যে ইউনিক নাম নিশ্চিত করে। ORDER BY Name ফলাফল সর্ট করে।

  1. কোন MySQL ভার্সন ও ডিস্ট্রিবিউশন ইনস্টল করবেন

  2. ১ থেকে n পর্যন্ত শুধু ০ এবং ১ অঙ্ক সম্বলিত পূর্ণসংখ্যা গণনা করা C++-তে

  3. C# ব্যবহার করে সোর্টেড অ্যারেতে রিকার্সনের মাধ্যমে অ্যারে কতবার রোটেট হয়েছে তা খুঁজে বের করার পদ্ধতি

  4. C#-এ একটি স্ট্রিংকে N বার রিপিট করে রিটার্ন করার পদ্ধতি