SQL GROUP BY bandi


baham ko'ring

SQL GROUP BY buyrug‘i

GROUP BY buyrug‘i bir xil qiymatlarga ega qatorlarni umumlashtiruvchi qatorlarga guruhlash uchun ishlatiladi, masalan, "Har bir mamlakatdagi mijozlar sonini toping".

GROUP BY buyrug‘i har bir guruh bo‘yicha hisob-kitoblarni bajarish uchun deyarli har doim COUNT(), MAX(), MIN(), SUM(), AVG() kabi agregat funksiyalar bilan birgalikda ishlatiladi.

GROUP BY sintaksisi

SELECT column1, aggregate_function(column2), column3, ...
FROM table_name
WHERE condition
GROUP BY column1, column3
ORDER BY column_name;

Demo ma’lumotlar bazasi

Quyida Northwind namunaviy ma’lumotlar bazasidagi "Customers" jadvalidan tanlanma keltirilgan:

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden


SQL GROUP BY misollari

Quyidagi SQL har bir mamlakatdagi mijozlar sonini qaytaradi:

Misol

SELECT Country, COUNT(CustomerID) AS [Number of Customers]
FROM Customers
GROUP BY Country;
O‘zingiz sinab ko‘ring »

Quyidagi SQL har bir mamlakatdagi mijozlar sonini kattadan kichikka qarab saralangan holda qaytaradi:

Misol

SELECT Country, COUNT(CustomerID) AS [Number of Customers]
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
O‘zingiz sinab ko‘ring »

Demo ma’lumotlar bazasi

Quyida Northwind namunaviy ma’lumotlar bazasidagi "Orders" jadvalidan tanlanma keltirilgan:

OrderID CustomerID EmployeeID OrderDate ShipperID
10248 90 5 1996-07-04 3
10249 81 6 1996-07-05 1
10250 34 4 1996-07-08 2

Va tanlanma "Shippers" jadvali:

ShipperID ShipperName
1 Speedy Express
2 United Package
3 Federal Shipping

JOIN bilan GROUP BY misoli

Quyidagi SQL har bir jo‘natuvchi tomonidan yuborilgan Orders sonini qaytaradi:

Misol

SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders
LEFT JOIN Shippers
ON Orders.ShipperID = Shippers.ShipperID
GROUP BY ShipperName;
O‘zingiz sinab ko‘ring »



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!