বিষয়সূচী (Table of Contents)

01

কেন DISTINCT দরকার — আগে গল্প

১৫ মিনিট

আজকের ক্লাস SQL কোড দিয়ে শুরু হবে না। প্রথমে চারটা বাস্তব সমস্যা। সমস্যাটা না বুঝলে DISTINCT মুখস্থ হয়ে যাবে — বোঝা হবে না।

গল্প ১ — বিশ্ববিদ্যালয় (৫০,০০০ ছাত্র)

City কলামে যা আছে
Dhaka Dhaka Chittagong Dhaka Sylhet Chittagong Dhaka Rajshahi Sylhet

প্রশাসক জিজ্ঞেস করলেন: “আমাদের ছাত্ররা কোন কোন শহর থেকে আসে?”

ক্লাসকে জিজ্ঞেস করো

১) কি আমরা সবগুলো Dhaka বারবার দেখাব, নাকি প্রতিটা শহর একবার?

২) কেন একই শহর বারবার আসছে?

৩) SQL কীভাবে প্রতিটা মান একবার করে দেখাতে পারে?

বারবার দেখালে

Dhaka Dhaka Dhaka Dhaka Chittagong …

বিভ্রান্তিকর। পড়া কষ্ট।

একবার করে দেখালে

Dhaka Chittagong Sylhet Rajshahi

পরিষ্কার ইউনিক তালিকা।

গল্প ২ — ই-কমার্স (১০ লক্ষ অর্ডার)

মার্কেটিং ম্যানেজার

“কোন কোন শহরে কাস্টমার আছে?” — তিনি ১০ লক্ষ সারি চান না। চান শুধু:

Dhaka Chittagong Sylhet Rajshahi

গল্প ৩ — ব্যাংক

মিলিয়ন ট্রানজেকশনের Branch কলামে একই শাখার নাম হাজারবার। ম্যানেজার চান: “কোন কোন শাখায় লেনদেন হয়েছে?” — প্রতিটা শাখা একবার।

গল্প ৪ — হাসপাতাল

Cardiology Cardiology Neurology Medicine Cardiology Medicine Neurology

পরিচালক চান ডিপার্টমেন্টের ইউনিক তালিকা:

Cardiology Neurology Medicine
Raw Data ↓ Repeated Values (ডুপ্লিকেট) ↓ DISTINCT ↓ Unique Values (ইউনিক ফলাফল)
মনে রাখো (এনালজি): একই রকম অনেকগুলো নামের মধ্যে প্রতিটি নাম একবার করে দেখানো।
কমন কনফিউশন: DISTINCT কি database থেকে ডুপ্লিকেট মুছে ফেলে? না। শুধু query-এর ফলাফল পরিষ্কার করে। আসল টেবিল অপরিবর্তিত থাকে।
Teacher Tip: এই পয়েন্টটা ক্লাসে কমপক্ষে তিনবার বলো — শুরুতে, মাঝে, শেষে।
02

DISTINCT আসলে কী?

১৫ মিনিট

ডুপ্লিকেট কী? ইউনিক কী?

  • Duplicate: একই মান বারবার আসা (Dhaka, Dhaka, Dhaka)।
  • Unique: প্রতিটা আলাদা মান একবার (Dhaka একবার)।

DISTINCT কী করে?

SELECT-এর ফলাফল থেকে একই মান / একই কলাম-কম্বিনেশন বারবার না দেখিয়ে ইউনিক রেজাল্ট দেয়।

কী করে

  • Query result-এ ডুপ্লিকেট কমায়
  • ইউনিক তালিকা দেয়
  • রিপোর্ট পঠনযোগ্য করে

কী করে না

  • টেবিল থেকে রো DELETE করে না
  • আসল ডেটা বদলায় না
  • সাজায় না (ORDER BY লাগে)
  • গণনা করে না (GROUP BY + COUNT লাগে)
Database (অপরিবর্তিত) ↓ SELECT ↓ DISTINCT ↓ Unique Query Result (শুধু স্ক্রিনে)
Remember This: DISTINCT = result filter। DELETE = ডেটা মুছে ফেলা। দুটো সম্পূর্ণ আলাদা।
03

Basic DISTINCT — লাইন বাই লাইন

১৫ মিনিট

স্যাম্পল টেবিল: Customers

CustomerIDNameCity
1RahimDhaka
2KarimDhaka
3SalmaChittagong
4NadiaDhaka
5JamalSylhet
6RinaChittagong

Query

SELECT DISTINCT City FROM Customers;

Expected output

City ----------- Dhaka Chittagong Sylhet

আউটপুট ব্যাখ্যা: টেবিলে ৬ সারি ছিল, কিন্তু City অনুযায়ী মাত্র ৩টা আলাদা মান — তাই ৩ সারি ফিরে এসেছে। আসল টেবিলে এখনো ৬ সারিই আছে।

লাইন বাই লাইন

  • SELECT → কী দেখতে চাই?
  • DISTINCT → একই মান বারবার নয়।
  • City → কোন কলাম?
  • FROM Customers → কোন টেবিল?
SELECT ↓ What do I want? DISTINCT ↓ Don't repeat the same value City ↓ Which column? FROM Customers ↓ Which table?
04

বিভিন্ন ডেটা টাইপে DISTINCT

১৫ মিনিট

টেক্সট — Department

SELECT DISTINCT Department FROM Employees;
Department ---------- IT HR Sales Finance

Country

SELECT DISTINCT Country FROM Customers;
Country ---------- Bangladesh India USA

Category

SELECT DISTINCT Category FROM Products;
Category ------------ Electronics Fashion Grocery

সংখ্যা — Age

SELECT DISTINCT Age FROM Students;
Age --- 18 19 20 21

Salary (ইউনিক বেতনের মান)

SELECT DISTINCT Salary FROM Employees ORDER BY Salary;
Teacher Tip: সংখ্যায়ও DISTINCT কাজ করে — “কতগুলো আলাদা বেতন স্কেল আছে” জানতে কাজে লাগে।
05

একাধিক কলামে DISTINCT — কম্বিনেশন

২০ মিনিট

খুবই গুরুত্বপূর্ণ: DISTINCT প্রতিটা কলাম আলাদাভাবে ইউনিক করে না। সে নির্বাচিত কলামগুলোর পুরো জোড়া/কম্বিনেশন দেখে।

SELECT DISTINCT Department, City FROM Employees;
DepartmentCity
ITDhaka
ITDhaka
HRDhaka
ITSylhet
HRDhaka

Output (ইউনিক কম্বিনেশন)

DepartmentCity
ITDhaka
HRDhaka
ITSylhet
Department + City ↓ Combination ↓ Check Duplicate ↓ Keep Unique Combination

IT + Dhaka দুবার ছিল → একবার রাখা হয়েছে। IT + Sylhet আলাদা কম্বিনেশন → আলাদা সারি।

বিজনেস উদাহরণ

  • Country + City
  • Department + Designation
  • Category + Brand
  • Year + Month
Common Student Confusion: “DISTINCT City, Department মানে কি City ইউনিক আর Department ইউনিক আলাদা?” — না। মানে ইউনিক জোড়া
06

DISTINCT + WHERE

১৫ মিনিট
SELECT DISTINCT City FROM Customers WHERE Country = 'Bangladesh';
FROM ↓ Read data WHERE ↓ Filter rows first DISTINCT ↓ Remove repeated values OUTPUT

আরও উদাহরণ

-- শুধু Active কর্মীদের ইউনিক ডিপার্টমেন্ট SELECT DISTINCT Department FROM Employees WHERE Status = 'Active'; -- দাম ১০০০-এর বেশি প্রোডাক্টের ইউনিক ক্যাটাগরি SELECT DISTINCT Category FROM Products WHERE Price > 1000;
প্রথমে WHERE দিয়ে অপ্রয়োজনীয় সারি বাদ, তারপর DISTINCT — ফলাফল ছোট ও অর্থপূর্ণ হয়।
07

DISTINCT + ORDER BY

১৫ মিনিট
SELECT DISTINCT City FROM Customers ORDER BY City ASC;
Chittagong Dhaka Rajshahi Sylhet
SELECT DISTINCT City FROM Customers ORDER BY City DESC;
Sylhet Rajshahi Dhaka Chittagong
Data → DISTINCT → Unique Values → ORDER BY → Sorted Unique Values
Teacher Tip: DISTINCT সাজায় না। সাজাতে ORDER BY লাগবেই।
08

DISTINCT vs GROUP BY

২০ মিনিট

ইউনিক তালিকা

SELECT DISTINCT Department FROM Employees;

গ্রুপ + গণনা

SELECT Department, COUNT(*) FROM Employees GROUP BY Department;
DISTINCTGROUP BY
প্রধানত ইউনিক রেজাল্টপ্রধানত গ্রুপ বিশ্লেষণ
সিম্পল ডুপ্লিকেট রিমুভালগ্রুপড রিপোর্টের জন্য ডিজাইন
প্রায়ই Aggregate ছাড়াCOUNT/SUM/AVG-এর সাথে সাধারণ
ইউনিক লিস্টে সহজরিপোর্ট ও অ্যাগ্রিগেশনে ভালো

শুধু “কোন কোন ডিপার্টমেন্ট আছে?” → DISTINCT যথেষ্ট। “প্রতি ডিপার্টমেন্টে কতজন?” → GROUP BY + COUNT — DISTINCT একা এটি পারে না।

09

অন্যান্য SQL কনসেপ্টের সাথে তুলনা

১০ মিনিট
তুলনাসহজ ব্যাখ্যা
DISTINCT vs GROUP BYলিস্ট vs গ্রুপ+হিসাব
DISTINCT vs ORDER BYডুপ্লিকেট সরানো vs সাজানো
DISTINCT vs WHEREফলাফলে ইউনিক vs আগে সারি ফিল্টার
DISTINCT vs LIMITইউনিক মান vs কতগুলো সারি দেখাবে
DISTINCT vs স্থায়ী ডুপ্লিকেট ডিলিটশুধু result vs DELETE/ডেটা ক্লিনিং
10

MySQL Workbench — হাতে-কলমে

প্র্যাকটিক্যাল

Step 1–3: Database, Table, Data (২৫ রো)

CREATE DATABASE distinct_demo; USE distinct_demo; CREATE TABLE employees ( EmpID INT, EmpName VARCHAR(50), Department VARCHAR(50), City VARCHAR(50), Status VARCHAR(20) ); INSERT INTO employees VALUES (1,'Rahim','IT','Dhaka','Active'), (2,'Karim','IT','Dhaka','Active'), (3,'Salma','HR','Dhaka','Active'), (4,'Nadia','IT','Sylhet','Active'), (5,'Jamal','Sales','Chittagong','Active'), (6,'Rina','HR','Dhaka','Inactive'), (7,'Hasan','Sales','Dhaka','Active'), (8,'Mitu','Finance','Dhaka','Active'), (9,'Omar','IT','Chittagong','Active'), (10,'Lira','Sales','Sylhet','Active'), (11,'Babu','Finance','Rajshahi','Active'), (12,'Nila','HR','Chittagong','Active'), (13,'Shuvo','IT','Dhaka','Inactive'), (14,'Tania','Sales','Dhaka','Active'), (15,'Imran','Finance','Dhaka','Active'), (16,'Popy','IT','Rajshahi','Active'), (17,'Kamal','HR','Sylhet','Active'), (18,'Farah','Sales','Chittagong','Inactive'), (19,'Rafi','IT','Sylhet','Active'), (20,'Sumi','Finance','Chittagong','Active'), (21,'Anik','Sales','Rajshahi','Active'), (22,'Meena','HR','Dhaka','Active'), (23,'Jamil','IT','Dhaka','Active'), (24,'Keya','Sales','Sylhet','Active'), (25,'Arif','Finance','Dhaka','Inactive');

Step 4 — সব ডেটা দেখো

SELECT * FROM employees;

২৫ সারি আসবে। এখনো DISTINCT নেই।

Step 5 — ইউনিক Department

SELECT DISTINCT Department FROM employees;
IT HR Sales Finance

ব্যাখ্যা: অনেক কর্মী, কিন্তু ডিপার্টমেন্ট মাত্র ৪টা। ভুল: ভাবা যে বাকি ডিপার্টমেন্ট ডিলিট হয়ে গেছে।

Step 6 — ইউনিক City

SELECT DISTINCT City FROM employees;
Dhaka Sylhet Chittagong Rajshahi

Step 7 — Department + City কম্বিনেশন

SELECT DISTINCT Department, City FROM employees;

শুধু City DISTINCT-এর চেয়ে বেশি সারি আসবে — কারণ একই শহরে একাধিক ডিপার্টমেন্ট আলাদা কম্বিনেশন।

Step 8 — WHERE সহ

SELECT DISTINCT City FROM employees WHERE Department = 'IT';
Dhaka Sylhet Chittagong Rajshahi

শুধু IT কর্মীদের শহর।

Step 9 — ORDER BY সহ

SELECT DISTINCT City FROM employees ORDER BY City;
Best practice: ইউনিক লিস্ট দেখাতে DISTINCT; সাজাতে ORDER BY যোগ করো।
11

কমন বিগিনার ভুল

১০ মিনিট

Mistake 1 — DISTINCT = DELETE ভাবা

ভুল ধারণা

Database ↓ DISTINCT ↓ Delete duplicates

সঠিক ধারণা

Database ↓ SELECT ↓ DISTINCT ↓ Unique Query Result

Mistake 2 — শুধু প্রথম কলামে কাজ করে ভাবা

একাধিক কলাম থাকলে পুরো কম্বিনেশন চেক হয়।

Mistake 3 — GROUP BY-এর সাথে গুলিয়ে ফেলা

গণনা/সামারি চাইলে GROUP BY; শুধু ইউনিক লিস্টে DISTINCT।

Mistake 4 — অপ্রয়োজনে DISTINCT

বড় টেবিলে অতিরিক্ত DISTINCT ধীর করতে পারে। দরকার না থাকলে ব্যবহার কোরো না।

Mistake 5 — “ভালো” ডুপ্লিকেট বেছে নেবে ভাবা

DISTINCT কোন সারি “ভালো” তা সিদ্ধান্ত নেয় না — শুধু একই রেজাল্ট কম্বিনেশন একবার রাখে।

12

ইন্ডাস্ট্রিতে কে কীভাবে ব্যবহার করে

১০ মিনিট
রোলDISTINCT দিয়ে কী করেন
Data Analystইউনিক কাস্টমার সিটি
Marketingইউনিক কাস্টমার সেগমেন্ট
E-commerceইউনিক প্রোডাক্ট ক্যাটাগরি
HRইউনিক ডিপার্টমেন্ট
Financeইউনিক ব্রাঞ্চ
Healthcareইউনিক ট্রিটমেন্ট ডিপার্টমেন্ট
Data Engineerডেটা কোয়ালিটি চেক
Data ScientistEDA-তে ক্যাটাগরির মান এক্সপ্লোর
13

বিজনেস কেস স্টাডি — E-commerce

১৫ মিনিট

টেবিল কলাম: Customer_ID, Customer_Name, City, Country, Gender, Product_Category, Payment_Method, Order_Status, Order_Amount

  1. কোন কোন শহরে কাস্টমার আছে? → SELECT DISTINCT City FROM …
  2. কোন কোন দেশ? → DISTINCT Country
  3. কোন ক্যাটাগরি আছে? → DISTINCT Product_Category
  4. কোন পেমেন্ট মেথড? → DISTINCT Payment_Method
  5. City + Category কম্বিনেশন? → DISTINCT City, Product_Category
  6. সম্পন্ন অর্ডারের শহর? → WHERE Order_Status='Completed' + DISTINCT City
SELECT DISTINCT City, Product_Category FROM Orders WHERE Order_Status = 'Completed' ORDER BY City;
14

ক্লাসরুম অ্যাক্টিভিটি

ইন্টারঅ্যাক্টিভ
Activity 1 — Spot the Duplicates
Dhaka Dhaka Sylhet Dhaka Chittagong Sylhet

DISTINCT কী রিটার্ন করবে? (উত্তর: Dhaka, Sylhet, Chittagong)

Activity 2 — Predict the Output

টেবিল ও query দেখিয়ে আগে কাগজে আউটপুট লেখো, পরে রান করো।

Activity 3 — DISTINCT or GROUP BY?
  • “কোন কোন ব্র্যান্ড আছে?” → DISTINCT
  • “প্রতি ব্র্যান্ডের মোট বিক্রি?” → GROUP BY + SUM
Activity 4 — Find the Mistake
-- ভুল ধারণা নিয়ে কমেন্ট -- DISTINCT employees থেকে ডুপ্লিকেট ডিলিট করবে SELECT DISTINCT City FROM employees;

মিসটেক: DISTINCT ডিলিট করে না।

15

মিনি প্রজেক্ট — Customer Analytics Report

প্রজেক্ট

খুঁজে বের করো:

  • Unique cities / countries / departments / product categories / payment methods
  • Unique city + product category combinations

তারপর DISTINCT-এর সাথে WHERE, ORDER BY, LIMIT জোড়া লাগাও।

SELECT DISTINCT City FROM Customers ORDER BY City LIMIT 5;
16

পারফরম্যান্স ও প্রফেশনাল টিপস

১০ মিনিট
  • DISTINCT অনেক মান তুলনা করতে পারে — বড় ডেটাসেটে ব্যয়বহুল হতে পারে।
  • শুধু দরকারি কলাম SELECT করো।
  • SELECT DISTINCT * এড়াও, যদি না সত্যিই পুরো সারি ইউনিক চাও।
  • আগে WHERE দিয়ে সারি কমাও।
  • বিজনেসে সামারি লাগলে GROUP BY ভেবে দেখো।
অভ্যন্তরীণ ইঞ্জিন ডিটেইলে যাব না — বিগিনার লেভেলে “দরকারমতো ব্যবহার করো” যথেষ্ট।
17

সরলীকৃত SQL এক্সিকিউশন ফ্লো

১০ মিনিট
FROM ↓ WHERE ↓ GROUP BY ↓ HAVING ↓ SELECT ↓ DISTINCT ↓ ORDER BY ↓ LIMIT
এটা শিক্ষার জন্য সরলীকৃত লজিক্যাল মডেল। আসল ডেটাবেজ অপটিমাইজার ভিন্নভাবে প্ল্যান করতে পারে — কিন্তু ক্লাসে DISTINCT-কে “রেজাল্ট তৈরির ধাপে ডুপ্লিকেট সরানো” হিসেবে ভাবা সহজ।
18

রিভিশন ও চিট শিট

৫ মিনিট
  • Duplicate = বারবার একই মান; Unique = একবার।
  • DISTINCT = query result ইউনিক করে; টেবিল মুছে না।
  • Multi-column = কম্বিনেশন চেক।
  • WHERE আগে ফিল্টার; ORDER BY পরে সাজায়।
  • লিস্ট → DISTINCT; গণনা/সামারি → GROUP BY।
SELECT DISTINCT column FROM table; SELECT DISTINCT column1, column2 FROM table; SELECT DISTINCT column FROM table WHERE condition; SELECT DISTINCT column FROM table ORDER BY column;
ক্লাসের মূল বাক্য: DISTINCT মানে database থেকে duplicate delete করা নয়; query result-এ একই value বা selected-column combination বারবার না দেখিয়ে unique result দেখানো।
19

MCQ — ক্লিক করে উত্তর দেখো

১৫+ প্রশ্ন
১. DISTINCT কী করে? (ক) টেবিল ডিলিট (খ) রেজাল্ট থেকে ডুপ্লিকেট কমায় (গ) সারি ইনসার্ট (ঘ) ইনডেক্স বানায়
উত্তর: (খ)। ব্যাখ্যা: শুধু query result ইউনিক করে।
২. DISTINCT কি আসল টেবিলের ডেটা মুছে ফেলে?
না। টেবিল অপরিবর্তিত থাকে।
৩. SELECT DISTINCT City FROM T; কখন ব্যবহার করবে?
ইউনিক শহরের তালিকা চাইলে।
৪. DISTINCT City, Country কী চেক করে?
City+Country কম্বিনেশনের ইউনিকতা।
৫. প্রতি ডিপার্টমেন্টে কতজন — কোনটা?
GROUP BY + COUNT(*), শুধু DISTINCT নয়।
৬. DISTINCT কি নিজে থেকে সাজায়?
না — ORDER BY লাগে।
৭. WHERE ও DISTINCT একসাথে?
হ্যাঁ — আগে WHERE, তারপর ইউনিক রেজাল্ট।
৮. DISTINCT vs DELETE?
DISTINCT result filter; DELETE ডেটা মুছে।
৯. SELECT DISTINCT * মানে?
পুরো সারি কম্বিনেশন ইউনিক হলে রাখা।
১০. অপ্রয়োজনীয় DISTINCT-এর সমস্যা?
বড় ডেটাসেটে অতিরিক্ত কাজ/ধীরগতি।
১১. “ভালো” ডুপ্লিকেট বেছে নেয়?
না — শুধু একই রেজাল্ট একবার রাখে।
১২. Marketing-এ সাধারণ ব্যবহার?
ইউনিক সিটি/সেগমেন্ট লিস্ট।
১৩. DISTINCT + ORDER BY ASC কী দেয়?
ইউনিক মান A→Z সাজানো।
১৪. LIMIT-এর কাজ DISTINCT-এর মতো?
না — LIMIT কত সারি দেখাবে তা কাটে।
১৫. কখন DISTINCT ব্যবহার করবে না?
যখন প্রতি গ্রুপের COUNT/SUM দরকার — তখন GROUP BY।
১৬. IT ডিপার্টমেন্টের ইউনিক শহর?
SELECT DISTINCT City FROM Emp WHERE Department='IT';
20

ভিভা প্রশ্ন (১৫+)

প্র্যাকটিস
১. DISTINCT কী?
Query result থেকে ডুপ্লিকেট সরিয়ে ইউনিক মান/কম্বিনেশন দেখানোর ক্লজ।
২. DISTINCT কি ডেটা ডিলিট করে?
না।
৩. কেন ব্যবহার করি?
বারবার একই মান না দেখিয়ে পরিষ্কার ইউনিক লিস্ট পেতে।
৪. মাল্টি-কলামে কাজ করে?
হ্যাঁ — কম্বিনেশন ইউনিক করে।
৫. DISTINCT vs GROUP BY?
লিস্ট vs গ্রুপ+অ্যাগ্রিগেট।
৬. WHERE সাথে?
হ্যাঁ।
৭. ORDER BY সাথে?
হ্যাঁ।
৮. আসল টেবিল বদলায়?
না।
৯. Duplicate মানে কী?
একই মান বারবার থাকা।
১০. Unique মানে কী?
প্রতিটা আলাদা মান একবার।
১১. DISTINCT * কখন?
পুরো সারি ইউনিক চাইলে — সাধারণত এড়াও।
১২. পারফরম্যান্স টিপ?
প্রয়োজনমতো ব্যবহার; আগে WHERE।
১৩. Analyst কেন ব্যবহার করে?
ইউনিক ক্যাটাগরি/লোকেশন এক্সপ্লোর।
১৪. COUNT দরকার হলে?
GROUP BY + COUNT (বা COUNT DISTINCT আলাদা টপিক)।
১৫. DISTINCT কি LIMIT-এর বিকল্প?
না।
১৬. কখন DISTINCT ব্যবহার করবে?
যখন ব্যবসা ইউনিক তালিকা চায়, গ্রুপ সামারি নয়।
21

ইন্টারভিউ — Top 25 DISTINCT

প্রস্তুতি

প্রতিটিতে ক্লিক করো — উত্তর, উদাহরণ, কমন ভুল, ফলো-আপ, ইউজ-কেস।

১. DISTINCT কী?
উত্তর: রেজাল্ট ইউনিক করে। উদাহরণ: SELECT DISTINCT City FROM Customers; ভুল: DELETE ভাবা। ফলো-আপ: টেবিল বদলায়? ইউজ: ইউনিক সিটি লিস্ট।
২. কেন দরকার?
ডুপ্লিকেট লিস্ট বিভ্রান্তিকর। ভুল: সবসময় লাগে ভাবা। ফলো-আপ: GROUP BY কখন? ইউজ: ড্রপডাউন অপশন।
৩. ডেটা ডিলিট করে?
না। উদাহরণ: DISTINCT পর SELECT * এখনো সব রো। ভুল: backup ছাড়া DISTINCT। ফলো-আপ: DELETE কীভাবে? ইউজ: নিরাপদ এক্সপ্লোরেশন।
৪. মাল্টি-কলাম DISTINCT?
কম্বিনেশন চেক। উদাহরণ: DISTINCT Dept, City। ভুল: প্রতি কলাম আলাদা ইউনিক ভাবা। ফলো-আপ: আউটপুট রো বাড়ে কেন? ইউজ: সেগমেন্ট জোড়া।
৫. DISTINCT + WHERE
ফিল্টারের পর ইউনিক। উদাহরণ: WHERE Country='BD'। ভুল: WHERE পরে ভুল কলাম। ফলো-আপ: অর্ডার কী? ইউজ: এক দেশের সিটি।
৬. DISTINCT + ORDER BY
ইউনিক + সাজানো। ভুল: DISTINCT সাজায় ভাবা। ফলো-আপ: DESC কখন? ইউজ: অ্যালফাবেটিক লিস্ট।
৭. DISTINCT + LIMIT
আগে ইউনিক, তারপর কাটা। উদাহরণ: ORDER BY City LIMIT 5। ভুল: LIMIT আগে DISTINCT। ফলো-আপ: পেজিনেশন? ইউজ: টপ ইউনিক নমুনা।
৮. vs GROUP BY
লিস্ট vs অ্যাগ্রিগেট। ভুল: একই জিনিস ভাবা। ফলো-আপ: COUNT সহ? ইউজ: রিপোর্ট ডিজাইন।
৯. vs duplicate deletion
Result vs permanent clean। ভুল: DISTINCT দিয়ে ক্লিনিং। ফলো-আপ: ডুপ্লিকেট রো কীভাবে মুছবে? ইউজ: ETL আলাদা।
১০. Performance
তুলনা খরচ বাড়তে পারে। ভুল: সব query-তে DISTINCT। ফলো-আপ: Index সাহায্য? ইউজ: বড় ফ্যাক্ট টেবিল সতর্কতা।
১১. SELECT DISTINCT *
পুরো সারি ইউনিক। ভুল: সবসময় ব্যবহার। ফলো-আপ: কখন দরকার? ইউজ: ডুপ্লিকেট রো ডিটেকশন শুরু।
১২. NULL নিয়ে?
অনেক DB-তে NULL একসাথে গ্রুপ হয়। ভুল: NULL আলাদা প্রতিবার। ফলো-আপ: IS NULL? ইউজ: মিসিং সিটি চেক।
১৩. Case sensitivity?
DB collation-এর উপর নির্ভর। ভুল: সব ইঞ্জিন এক। ফলো-আপ: Dhaka vs dhaka? ইউজ: ডেটা ক্লিনিং।
১৪. Subquery-তে?
হ্যাঁ ব্যবহার করা যায়। ভুল: সবসময় দরকার। ফলো-আপ: IN (SELECT DISTINCT …)? ইউজ: ফিল্টার লিস্ট।
১৫. COUNT(DISTINCT col)
ইউনিক গণনা (সংক্ষেপে)। ভুল: DISTINCT লিস্টের সমান ভাবা। ফলো-আপ: GROUP BY সাথে? ইউজ: কত আলাদা কাস্টমার।
১৬. Business question mapping
“কোন কোন X?” → DISTINCT। ভুল: সব প্রশ্নে DISTINCT। ফলো-আপ: “কতজন প্রতি X?” ইউজ: রিকয়ারমেন্ট ক্ল্যারিফাই।
১৭. E-commerce example
DISTINCT Payment_Method। ভুল: Amount DISTINCT। ফলো-আপ: City+Category? ইউজ: চেকআউট অ্যানালিটিক্স।
১৮. HR example
DISTINCT Department। ভুল: Salary সব DISTINCT অর্থহীন হতে পারে। ফলো-আপ: Designation+Dept? ইউজ: অর্গ চার্ট।
১৯. Data quality
কত আলাদা স্ট্যাটাস ভ্যালু আছে দেখা। ভুল: অটো-ফিক্স। ফলো-আপ: অপ্রত্যাশিত ভ্যালু? ইউজ: QA চেক।
২০. vs UNION
UNION ডিফল্টে ডুপ্লিকেট সরায় (সেট)। ভুল: একই সিনট্যাক্স। ফলো-আপ: UNION ALL? ইউজ: মাল্টি-টেবিল লিস্ট।
২১. When NOT to use
অ্যাগ্রিগেট রিপোর্ট; PK ইতিমধ্যে ইউনিক। ভুল: হ্যাবিট হিসেবে DISTINCT। ফলো-আপ: বিকল্প? ইউজ: কোড রিভিউ।
২২. Explain output size change
রো কমে কারণ ডুপ্লিকেট বাদ। ভুল: ডেটা হারানো। ফলো-আপ: কেন ০ রো? ইউজ: স্টেকহোল্ডার বোঝানো।
২৩. DISTINCT on numeric
ইউনিক সংখ্যা মান। উদাহরণ: DISTINCT Age। ভুল: গড় বের করে। ফলো-আপ: AVG কখন? ইউজ: ডিস্টিংক্ট এজ ব্র্যাকেট।
২৪. Teaching model order
FROM→WHERE→…→SELECT/DISTINCT→ORDER→LIMIT (সরলীকৃত)। ভুল: ফিজিক্যাল প্ল্যান একই। ফলো-আপ: Optimizer? ইউজ: ডিবাগ মানসিক মডেল।
২৫. Final decision rule
ইউনিক লিস্ট চাইলে DISTINCT; গ্রুপ হিসাব চাইলে GROUP BY। ভুল: অনুমান। ফলো-আপ: দুটো মিশিয়ে উদাহরণ দাও। ইউজ: প্রতিদিনের অ্যানালিটিক্স।
22

হোমওয়ার্ক — E-commerce Database

বাসার কাজ

প্রশ্নসমূহ (আগে শুধু প্রশ্ন)

  1. Unique cities বের করো।
  2. Unique countries।
  3. Unique categories।
  4. Unique payment methods।
  5. Unique order statuses।
  6. Unique city + category combinations।
  7. Completed অর্ডারের unique cities।
  8. Unique categories নাম অনুযায়ী সাজাও।
  9. অ্যালফাবেটিকভাবে প্রথম ৫টি unique cities।

উত্তর সেকশন (ক্লিক করে দেখো)

উত্তর ১ — Unique cities
SELECT DISTINCT City FROM Orders;
উত্তর ২ — Unique countries
SELECT DISTINCT Country FROM Orders;
উত্তর ৩ — Unique categories
SELECT DISTINCT Product_Category FROM Orders;
উত্তর ৪ — Payment methods
SELECT DISTINCT Payment_Method FROM Orders;
উত্তর ৫ — Order statuses
SELECT DISTINCT Order_Status FROM Orders;
উত্তর ৬ — City + Category
SELECT DISTINCT City, Product_Category FROM Orders;
উত্তর ৭ — Completed cities
SELECT DISTINCT City FROM Orders WHERE Order_Status = 'Completed';
উত্তর ৮ — Categories ordered
SELECT DISTINCT Product_Category FROM Orders ORDER BY Product_Category;
উত্তর ৯ — First 5 cities A→Z
SELECT DISTINCT City FROM Orders ORDER BY City ASC LIMIT 5;