distinct_as

পাঠ ২ · DISTINCT ও AS

DISTINCT কী?

একটি কলামে একই মান বারবার থাকতে পারে। DISTINCT একই মান একবারই দেখায়। ফলে কোন কোন আলাদা মান আছে তা সহজে বোঝা যায়।

সিনট্যাক্স

SQL Syntax Rule
SELECT DISTINCT [কলামের নাম]
FROM [টেবিলের নাম];

DISTINCT বসে SELECT এর ঠিক পরে, কলামের নামের আগে।

উদাহরণ ১: কোন কোন গ্রুপ আছে

আগে DISTINCT ছাড়া group_name দেখি। student টেবিলে ৫ জন শিক্ষার্থী, তাই ৫টি সারি আসবে। Science ও Commerce দুইবার করে আছে।

SELECT group_name FROM student;
ফলাফল৫টি সারি
group_name
Science
Commerce
Arts
Science
Commerce

এবার DISTINCT দিয়ে একই Query চালাই।

SELECT DISTINCT group_name FROM student;

ব্যাখ্যা

  • DISTINCT→একই মান একবার দেখাবে
  • group_name→যে কলামের আলাদা মানগুলো চাই

ফলাফল

ফলাফল৩টি সারি
group_name
Science
Commerce
Arts

৫টি সারি থেকে ৩টি সারি হলো। কলেজে তিনটি গ্রুপ আছে: Science, Commerce ও Arts।

উদাহরণ ২: দুই কলামে DISTINCT

DISTINCT এর পরে একাধিক কলাম দিলে পুরো সারির জোড়া দেখে বিচার করে। শুধু একটি কলাম দেখে নয়।

SELECT DISTINCT class, section FROM student;
ফলাফল৪টি সারি
classsection
11A
12A
11B
12B

Rudra ও Priya দুজনেই class 11, section A তে পড়ে। তাই (11, A) জোড়াটি একবারই এসেছে। ৫ জন থেকে ৪টি সারি হলো।

AS কী?

AS দিয়ে ফলাফলের কলামকে নতুন নাম দেওয়া যায়। এই নামকে alias বলে। alias শুধু ফলাফলের শিরোনাম বদলায়। টেবিলের আসল কলামের নাম বদলায় না।

সিনট্যাক্স

SQL Syntax Rule
SELECT [কলামের নাম] AS [নতুন নাম]
FROM [টেবিলের নাম];

উদাহরণ ৩: কলামের নতুন নাম

SELECT roll AS roll_no, name AS student_name
FROM student;
  • roll AS roll_no→roll কলাম roll_no নামে দেখাবে
  • name AS student_name→name কলাম student_name নামে দেখাবে
ফলাফল৫টি সারি
roll_nostudent_name
1Rudra
2Habib
3Pappu
4Anik
5Priya

আরও একটি উদাহরণ: DISTINCT ও AS একসাথে

subject টেবিলে কোন কোন গ্রুপের বিষয় আছে দেখতে চাই। শিরোনাম হবে group_list।

SELECT DISTINCT group_name AS group_list
FROM subject;
ফলাফল৪টি সারি
group_list
Common
Science
Commerce
Arts

student টেবিলের গ্রুপের সাথে তুলনা করো। subject টেবিলে Common নামে একটি বাড়তি গ্রুপ আছে। Bangla ও ICT সব গ্রুপের শিক্ষার্থীর জন্য, তাই এগুলো Common।

মনে রাখো
  • DISTINCT সবসময় SELECT এর ঠিক পরে বসে।
  • দুই বা বেশি কলামে DISTINCT দিলে পুরো জোড়া আলাদা হলেই সারিটি আলাদা ধরা হয়।
  • alias এ ফাঁকা জায়গা না রাখাই ভালো। student_name লেখো, student name নয়।

অনুশীলন

প্রতিটি প্রশ্নের Query নিজে লেখো। চাইলে SQL Playground এ টেবিল তৈরি করে চালিয়ে দেখো। তারপর উত্তর মিলিয়ে নাও।

১

result টেবিলে কোন কোন roll এর রেজাল্ট আছে? প্রতিটি roll একবার করে দেখাও।

উত্তর দেখো
SELECT DISTINCT roll FROM result;
ফলাফল৫টি সারি
roll
1
2
3
4
5
২

student টেবিলে কোন কোন class আছে দেখাও।

উত্তর দেখো
SELECT DISTINCT class FROM student;
ফলাফল২টি সারি
class
11
12
৩

subject টেবিল থেকে subject_code কে code নামে আর subject_name কে title নামে দেখাও।

উত্তর দেখো
SELECT subject_code AS code, subject_name AS title
FROM subject;
ফলাফল৬টি সারি
codetitle
101Bangla
275ICT
174Physics
253Accounting
109Economics
304History
৪

result টেবিলে কোন কোন subject_code আছে দেখাও। প্রতিটি কোড একবার করে আসবে।

উত্তর দেখো
SELECT DISTINCT subject_code FROM result;
ফলাফল৬টি সারি
subject_code
101
174
275
109
253
304