Home › Roadmap › SQL & Databases › Part 8

Window Functions

📘 ROW_NUMBER, RANK, রানিং টোটাল।

🌐 Rankings and running totals over rows.

🗄️ এসকিউএল ও ডাটাবেস🎚 Intermediate📍 Part 8 / 12🧩 3 সাব-টপিক
🗄️
1

ধারণা · Concept

কী এবং কেন
📘 বাংলা ব্যাখ্যা:
ROW_NUMBER, RANK, রানিং টোটাল।
🌐 English:
Rankings and running totals over rows.

🗂 কোথায় পড়ে

২. ডেটা বিশ্লেষণ → এসকিউএল ও ডাটাবেস → Window Functions

🎯 এই শাখার লক্ষ্য

Joins, aggregates, window functions, schema design

🧰 টুলস

MySQL, PostgreSQL, SQLite

🪜

ধাপে ধাপে শিখুন · Step-by-step

কেন শিখবেন → কীভাবে শিখবেন → উদাহরণ → সাধারণ ভুল
💡 কেন গুরুত্বপূর্ণ?

র‍্যাঙ্কিং, রানিং টোটাল, আগের মাসের তুলনা—সারি না কমিয়েই।

  1. ধাপ 1
    কাঠামো: FUNCTION() OVER (PARTITION BY group ORDER BY col)
  2. ধাপ 2
    ROW_NUMBER, RANK, DENSE_RANK — ক্রমিক নম্বর
  3. ধাপ 3
    LAG(col) / LEAD(col) — আগের/পরের সারির মান
  4. ধাপ 4
    SUM(col) OVER (ORDER BY date) — রানিং টোটাল; AVG ... ROWS BETWEEN 6 PRECEDING AND CURRENT ROW — চলমান গড়

🧪 বাস্তব উদাহরণ

প্রতি বিভাগে শীর্ষ ৩ জেলা: ROW_NUMBER() OVER (PARTITION BY division ORDER BY cases DESC) ≤ 3।

⚠️ সাধারণ ভুল

window function WHERE-এ সরাসরি ফিল্টার—পারবেন না; CTE/সাবকুয়েরিতে মোড়ান।

🔑 মূল শব্দ (Key terms)

window functionOVERPARTITION BYRANKLAGrunning total

3

সাব-টপিক ও বিস্তারিত · Sub-topics

টপিক → সাব-টপিক → সাব-সাব টপিক
8.1 ROW_NUMBER, RANK, DENSE_RANK8.1.1 র‍্যাঙ্কিং
8.2 LAG/LEAD8.2.1 আগের/পরের সারি
8.3 SUM() OVER8.3.1 রানিং টোটাল
🎬

ভিডিও · Videos (বাংলা ও English)

ক্লিক করলে সাইটের ভেতরেই ফ্লোটিং প্লেয়ারে চলবে · ভিডিও MySQL-এ সংরক্ষিত
💻

হাতে-কলমে · Try it (SQL & Databases)

এডিট করে Run চাপুন · Ctrl+Enter
import sqlite3
con=sqlite3.connect(":memory:")
con.executescript('''CREATE TABLE s(id INT, name TEXT, dept TEXT, marks INT);
INSERT INTO s VALUES(1,'Rafi','CSE',88),(2,'Mim','EEE',92),(3,'Tanvir','CSE',75),(4,'Nabila','EEE',81),(5,'Sakib','CSE',95);''')
q='''SELECT name, dept, marks, RANK() OVER(PARTITION BY dept ORDER BY marks DESC) AS rnk,
 ROUND(AVG(marks) OVER(PARTITION BY dept),1) AS dept_avg FROM s ORDER BY dept, rnk'''
for r in con.execute(q): print(r)
❓

সেল্ফ-চেক · Self check

1. “র‍্যাঙ্কিং” — এটি কোন সাব-টপিকের বর্ণনা?

2. “আগের/পরের সারি” — এটি কোন সাব-টপিকের বর্ণনা?

3. “রানিং টোটাল” — এটি কোন সাব-টপিকের বর্ণনা?

🔗

সংযুক্ত কনসেপ্ট · Connected concepts

← আগের টপিকSubqueriesপরের টপিক →CTE
🎬 Video