Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • PostgreSQL Documentation40টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Postgres Intro
  • Relational Model
  • Install & Setup
  • Connect psql
  • SELECT basics
  • Data Types
  • Create Table
  • Constraints
  • INSERT / UPDATE / DELETE
  • NULL & COALESCE
  • Schema Design
  • Relationships
  • Joins
  • Joins Advanced
  • Aggregation
  • ORDER / LIMIT
  • String Functions
  • Date Functions
  • Subqueries
  • CTE (WITH)
  • Views
  • Window Functions
  • Transactions
  • Indexes
  • Performance
  • UPSERT
  • JSONB
  • Full-Text Search
  • Triggers
  • Roles & Privileges
  • Backup & Restore
  • Node + PostgreSQL
  • Prisma Intro
  • Prisma Migrations
  • TechShop Schema
  • TechShop Queries
  • TechShop API
  • Best Practices
  • Common Mistakes
  • Interview Questions
  1. Docs
  2. PostgreSQL
  3. Window Functions — rank, row_number, over
PostgreSQLAdvanced

Window Functions — rank, row_number, over

GROUP BY ছাড়া row-wise ranking/aggregation — OVER().

5টি অংশবাংলা ভাষায়

Window function গ্রুপের ভেতরে প্রতিটি row-এর পাশাপাশি ফলাফল দেয় — aggregate-এর মতো গ্রুপ collapsed করে না।

user পার-এর সর্বশেষ ordersql
sql
SELECT u.name, o.total, o.created_at, rn
FROM (
  SELECT o.*, u.name,
         ROW_NUMBER() OVER (
           PARTITION BY o.user_id
           ORDER BY o.created_at DESC
         ) AS rn
  FROM orders o JOIN users u ON u.id = o.user_id
) ranked
WHERE ranked.rn = 1;
Functionকাজ
ROW_NUMBER()ক্রমিক নম্বর (প্রতি উইন্ডো)
RANK() / DENSE_RANK()সমান মানে-এ same rank
LAG / LEADআগের/পরের row-এর মান
SUM() OVERরানিং total (partition-ভিত্তিক)
-- রানিং total
SELECT created_at::date AS day, total,
       SUM(total) OVER (ORDER BY created_at::date) AS running
FROM orders
ORDER BY created_at::date;
কখন নয়

Window functions প্রায়ই সুদৃশ্য, তবে বড় scan-এ cost হয় — সচেতনভাবে ব্যবহার করুন। Top-N-এ filter করতে subquery/CTE-তে wrap জরুরি (WHERE-এ window function চলে না)।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরView — query সংরক্ষণ করাপরেরTransactions — ACID ও BEGIN/COMMIT/ROLLBACK
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com