SQL GROUP BY স্টেটমেন্ট | SQL GROUP BY এর ব্যবহার

“প্রতিটি দেশে গ্রাহকের সংখ্যা সন্ধান করুন” এর মতো সংক্ষিপ্ত সারিতে একই মান রয়েছে এমন গ্রুপের সারিগুলি SQL GROUP BY স্টেটমেন্ট দ্বারা বের করা যায় । এক বা একাধিক কলামের রেজাল্ট-সেট কে নির্দিষ্ট গ্রুপ করার জন্য Aggregate ফাংশন যেমন- COUNT, MAX, MIN, SUM, AVG ইত্যাদির সাথে প্রায়ই GROUP BY স্টেটমেন্টটি ব্যবহার করা হয়।

GROUP BY সিনট্যাক্স :

SELECT ColumnName
FROM TableName
WHERE condition
GROUP BY ColumnName;
=======================
-- সর্বোচ্চ থেকে সর্বনিম্ন DESC / সর্বনিম্ন থেকে সর্বোচ্চ ASC / Sorted --
SELECT COUNT(ColumnName), ColumnName2
FROM TableName
GROUP BY ColumnName2
ORDER BY COUNT(ColumnName) DESC;

নমুনা ডেটাবেজে – “Student”(শেষে দেয়া আছে)  GROUP BY এর নিম্নোক্ত কুয়েরি চালালে যে কোন শহর থেকে কতজন এসেছে তা জানা যাবে :

SELECT COUNT(id) as Count, HomeTown
FROM CSE
GROUP BY HomeTown; 

আউটপুট :

CountHomeTown
1Cumilla
2Jashore
2Khulna
1Kushtia
1Rajshahi

GROUP BY স্টেটমেন্ট ORDER BY এর সাথে সিনট্যাক্স :

নমুনা ডেটাবেজে – “Student”(শেষে দেয়া আছে)  GROUP BY এর নিম্নোক্ত কুয়েরি চালালে যে কোন শহর থেকে কতজন এসেছে তা জানা যাবে এবং তা সর্টেড হবে সর্বোচ্চ থেকে সর্বনিম্ন (DESC) [যদি ASC ব্যবহৃত হতো তাহলে সর্বনিম্ন থেকে সর্বোচ্চ দেখাত] :

SELECT COUNT(id) as Count, HomeTown
FROM CSE
GROUP BY HomeTown
ORDER BY COUNT(id) DESC;

আউটপুট :

CountHomeTown
2Jashore
2Khulna
1Kushtia
1Rajshahi
1 Cumilla

Group By single column:

Example :

SELECT eName, SUM(esalary) as TotalSalary
FROM Employee 
GROUP BY eName;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

Output :

Group By multiple columns:

Database
SELECT Dept, MYear, Count(*) as Count FROM  MessDB
GROUP BY Dept, MYear;

Output :

Student Database :

Table – CSE

IdName       HomeTown
101HafizJashore
102RaselKhulna
103FahimKushtia
104RajjakRajshahi
105MishkatCumilla
106MituKhulna
107HumayraJashore

অতিরিক্ত ( w3schools থেকে নেয়া ) :

GROUP BY স্টেটমেন্ট JOIN এর সাথে সিনট্যাক্স :

SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders
LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID
GROUP BY ShipperName;

Shippers.ShipperName : Shippers টেবিলের ShipperName কলাম select

COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders : Orders টেবিলের OrderID গণনা করবে , যা NumberOfOrders নামে Orders টেবিল থেকে।

LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID : সে ডেটাগুলো Shippers টেবিলের সাথে যুক্ত হবে , যেগুলো Shippers টেবিলের ShipperID ও Orders টেবিলের ShipperID একই হবে ।

GROUP BY ShipperName;

আউটপুট :

Number of Records: 3

ShipperNameNumberOfOrders
Federal Shipping68
Speedy Express54
United Package74

Extra Database :

“Shippers” table:

ShipperIDShipperName
1Speedy Express
2United Package
3Federal Shipping

“Orders” table : (Link) টোটাল ১৯৬ টি order আছে ।

https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_groupby1

Leave a Reply

Your email address will not be published. Required fields are marked *