GROUP BY Statement என்றால் என்ன?
GROUP BY statement ஒரே மதிப்புகளைக் கொண்ட வரிசைகளை சுருக்க வரிசைகளாக குழுவாக்குகிறது, "ஒவ்வொரு நாட்டிலும் உள்ள வாடிக்கையாளர்களின் எண்ணிக்கையைக் கண்டறிய" போன்றவை.
GROUP BY statement பெரும்பாலும் aggregate functions (COUNT(), MAX(), MIN(), SUM(), AVG()) உடன் பயன்படுத்தப்படுகிறது, முடிவு-தொகுப்பை ஒன்று அல்லது அதற்கு மேற்பட்ட நெடுவரிசைகளால் குழுவாக்க.
GROUP BY தொடரியல்
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
ஆர்ப்பாட்ட தரவுத்தளம்
Northwind மாதிரி தரவுத்தளத்தில் "Customers" அட்டவணையில் இருந்து ஒரு தேர்வு கீழே உள்ளது:
Customers அட்டவணை
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados... | Ana Trujillo | Avda. Constitución| México | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México | 05023 | Mexico |
| 4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Christina Berg | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
SQL GROUP BY உதாரணங்கள்
பின்வரும் SQL statement ஒவ்வொரு நாட்டிலும் உள்ள வாடிக்கையாளர்களின் எண்ணிக்கையை பட்டியலிடுகிறது:
உதாரணம்
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
முடிவு
பின்வரும் SQL statement ஒவ்வொரு நாட்டிலும் உள்ள வாடிக்கையாளர்களின் எண்ணிக்கையை பட்டியலிடுகிறது, உயர் முதல் குறைந்த வரிசையில் வரிசைப்படுத்தப்பட்டது:
உதாரணம்
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
முடிவு
கூடுதல் ஆர்ப்பாட்ட தரவுத்தளம்
Northwind மாதிரி தரவுத்தளத்தில் "Orders" அட்டவணையில் இருந்து ஒரு தேர்வு:
Orders அட்டவணை
+---------+------------+-----------+------------+------------+
| 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 |
+---------+------------+-----------+------------+------------+
மற்றும் "Shippers" அட்டவணையில் இருந்து ஒரு தேர்வு:
Shippers அட்டவணை
+-----------+-------------------+
| ShipperID | ShipperName |
+-----------+-------------------+
| 1 | Speedy Express |
| 2 | United Package |
| 3 | Federal Shipping |
+-----------+-------------------+
JOIN உடன் GROUP BY உதாரணம்
பின்வரும் SQL statement ஒவ்வொரு ஷிப்பரும் அனுப்பிய ஆர்டர்களின் எண்ணிக்கையை பட்டியலிடுகிறது:
உதாரணம்
SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders
LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID
GROUP BY ShipperName;
முடிவு
GROUP BY காட்சிப் பிரதிநிதித்துவம்
அசல் தரவு
குழுவாக்கப்பட்ட தரவு
கவனிக்க: GROUP BY ஒரே நாட்டு மதிப்புகளைக் கொண்ட அனைத்து வரிசைகளையும் குழுவாக்கி, ஒவ்வொரு குழுவிற்கும் aggregate functions-ஐப் பயன்படுத்துகிறது.
Aggregate Functions
COUNT()
வரிசைகளின் எண்ணிக்கையை தரும்
SELECT COUNT(*)
FROM Customers
GROUP BY Country;
MAX()
அதிகபட்ச மதிப்பை தரும்
SELECT MAX(Price)
FROM Products
GROUP BY CategoryID;
MIN()
குறைந்தபட்ச மதிப்பை தரும்
SELECT MIN(Price)
FROM Products
GROUP BY CategoryID;
SUM()
மொத்த தொகையை தரும்
SELECT SUM(Quantity)
FROM OrderDetails
GROUP BY OrderID;
AVG()
சராசரி மதிப்பை தரும்
SELECT AVG(Price)
FROM Products
GROUP BY CategoryID;
பல நெடுவரிசை GROUP BY
நீங்கள் ஒன்றுக்கு மேற்பட்ட நெடுவரிசைகளால் குழுவாக்கலாம்:
உதாரணம்
SELECT Country, City, COUNT(CustomerID)
FROM Customers
GROUP BY Country, City;
முடிவு
குறிப்பு:
பல நெடுவரிசைகளால் குழுவாக்கும் போது, ஒவ்வொரு தனித்த நெடுவரிசை மதிப்புகளின் கலவைக்கும் தனி குழுக்கள் உருவாக்கப்படும்.