Grupowanie polega na podzieleniu zbioru wierszy na grupy, które mają pewną wspólną cechę. Grupowania dokonuje się w celu zastosowania funkcji agregujących nie w stosunku do całego zbioru wierszy, ale do poszczególnych grup wierszy. W celu zgrupowania rekordów należy dodać nową klauzulę group by wraz z wyspecyfikowaniem kolumny lub wyrażenia, według którego mają być pogrupowane wiersze. Na liście klauzuli select mogą się znaleźć tylko kolumny i wyrażenia, według których zapytanie jest grupowane, oraz wywołania funkcji agregujących.
select count(*) IlośćWierszy, ProductCategoryID from SalesLT.Product group by ProductCategoryID;
Wyświetlona została ilość wierszy , która została pogrupowana z uwzględnieniem odpowiedniego identyfikatora kategorii produktu.
Przed grupowaniem można wcześniej wyfiltrować wiersze, które nas interesują, za pomocą klauzuli where,
select count(*) IlośćWierszy, ProductCategoryID from SalesLT.Product where ProductCategoryID group by ProductCategoryID;
Wyświetlona została ilość wierszy , z uwzględnieniem produktów, których identyfikator kategorii produktu jest większy rób równy 10, a następnie dane te zostały pogrupowane na odpowiedni identyfikator kategorii produktu.
Grupowania można używać na więcej niż jedną kolumnę lub wyrażenie. Aby tego dokonać po klauzuli group by i pierwszą nazwą kolumny lub wyrażenia, według którego mają być pogrupowane wiersze, dodajemy następną nazwę kolumny lub wyrażenia, po której w ramach grupy powstałej w wyniku pierwszego grupowania, ma nastąpić następne grupowanie. Kolejne kolumny lub wyrażenia oddzielamy przecinkiem.
select count(*) IlośćWierszy, ProductCategoryID, ProductmodelID from SalesLT.Product group by ProductCategoryID, ProductmodelID;
Wyświetlona została ilość wierszy , która została pogrupowana z uwzględnieniem odpowiedniego identyfikatora kategorii produktu, a następnie w ramach tych grup, nastąpiło kolejne grupowanie z rozróżnieniem na identyfikator modelu produktu. Dokładnie widać to na wierszach numer 3 i 4.
select count(*) IlośćWierszy, ProductCategoryID, ProductmodelID from SalesLT.Product group by ProductCategoryID, ProductmodelID;
Wyświetlona została ilość wierszy , która została pogrupowana z uwzględnieniem odpowiedniego identyfikatora kategorii produktu, a następnie w ramach tych grup, nastąpiło kolejne grupowanie z rozróżnieniem na identyfikator modelu produktu a dalej wiersze zostały pogrupowane z uwzględnieniem odpowiedniego koloru. Dokładnie widać to na wierszach numer 1 i 2.
Komentarze (0)
Brak komentarzy...