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

MySQL-এ CREATE TABLE AS SELECT ব্যবহার করে অন্য টেবিলের কলাম অনুযায়ী GROUP BY করে নতুন টেবিল তৈরি করা

একটি টেবিলের কলাম অনুযায়ী গ্রুপ করে নতুন টেবিল তৈরি করতে CREATE TABLE AS SELECT ব্যবহার করুন। প্রথম টেবিল (DemoTable1):

mysql> CREATE TABLE DemoTable1 (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    CountryName VARCHAR(20)
);
mysql> INSERT INTO DemoTable1(CountryName) VALUES('US'), ('UK'), ('AUS'), ('UK'), ('UK'), ('US'), ('AUS');

সকল রেকর্ড দেখতে:

mysql> SELECT * FROM DemoTable1;

আউটপুট:

+----+-------------+
| Id | CountryName |
+----+-------------+
| 1  | US          |
| 2  | UK          |
| 3  | AUS         |
| 4  | UK          |
| 5  | UK          |
| 6  | US          |
| 7  | AUS         |
+----+-------------+

CountryName অনুযায়ী গ্রুপ করে নতুন টেবিল (DemoTable2) তৈরি করা:

mysql> CREATE TABLE DemoTable2 AS SELECT * FROM DemoTable1 GROUP BY CountryName;
Query OK, 3 rows affected (0.79 sec)

নতুন টেবিল চেক করুন:

mysql> SELECT * FROM DemoTable2;

আউটপুট:

+----+-------------+
| Id | CountryName |
+----+-------------+
| 1  | US          |
| 2  | UK          |
| 3  | AUS         |
+----+-------------+

ব্যাখ্যা:

  • CREATE TABLE DemoTable2 AS SELECT ...: SELECT কোয়েরির ফলাফল থেকে নতুন টেবিল তৈরি করে (ডেটা + কোলাম ডেফিনিশন)।
  • GROUP BY CountryName: একই দেশের সারি গুলো এক করল (প্রথম এনকাউন্টার রেখে)।
  • Id কলামও কপি হয়েছে (প্রথম সারির Id)।

সতর্কতা: GROUP BY দিয়ে SELECT * ব্যবহার করা MySQL-এ অনুমোদিত (ONLY_FULL_GROUP_BY অফ থাকলে), কিন্তু অনির্ধারিত ফলাফল দেয় (কোন সারির Id নেবে বলে নিশ্চিত নয়)। সেরা অভ্যাস: SELECT MIN(Id) AS Id, CountryName FROM DemoTable1 GROUP BY CountryName ব্যবহার করুন।

ইনডেক্স/কনস্ট্রেইন্ট: নতুন টেবিলে প্রাইমারি কি, ইনডেক্স, অটো_ইনক্রিমেন্ট কপি হয় না। আলাদা করে যোগ করতে হয়।

  1. MySQL-এ JOIN দিয়ে অন্য টেবিলের কলাম ভিত্তিক আপডেট করা

  2. MySQL-এ isMarried = 0 olan সারি গোষ্ঠী করে (GROUP BY) ক্লায়েন্ট অনুযায়ী বের করা

  3. MySQL-এ GROUP_CONCAT() এবং ORDER BY ব্যবহার করে কলাম ভ্যালু অনুযায়ী রো গ্রুপ করে অ্যারে বানানো

  4. MySQL-এ গ্রুপ অনুযায়ী কলামের সর্বোচ্চ মান (Maximum of Column per Group)