Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
Sorgu sonucunu genellikle her grupta bir veya daha fazla toplama gerçekleştirerek satır gruplarına bölen select deyimi yan tümcesi. SELECT deyimi, grup başına bir satır döndürür.
Syntax
Transact-SQL söz dizimi kuralları
-- Syntax for SQL Server and Azure SQL Database
-- ISO-Compliant Syntax
GROUP BY {
column-expression
| ROLLUP ( <group_by_expression> [ ,...n ] )
| CUBE ( <group_by_expression> [ ,...n ] )
| GROUPING SETS ( <grouping_set> [ ,...n ] )
| () --calculates the grand total
} [ ,...n ]
<group_by_expression> ::=
column-expression
| ( column-expression [ ,...n ] )
<grouping_set> ::=
() --calculates the grand total
| <grouping_set_item>
| ( <grouping_set_item> [ ,...n ] )
<grouping_set_item> ::=
<group_by_expression>
| ROLLUP ( <group_by_expression> [ ,...n ] )
| CUBE ( <group_by_expression> [ ,...n ] )
-- For backward compatibility only.
-- Non-ISO-Compliant Syntax for SQL Server and Azure SQL Database
GROUP BY {
ALL column-expression [ ,...n ]
| column-expression [ ,...n ] WITH { CUBE | ROLLUP }
}
-- Syntax for Azure Synapse Analytics
GROUP BY {
column-name [ WITH (DISTRIBUTED_AGG) ]
| column-expression
| ROLLUP ( <group_by_expression> [ ,...n ] )
} [ ,...n ]
-- Syntax for Parallel Data Warehouse
GROUP BY {
column-name [ WITH (DISTRIBUTED_AGG) ]
| column-expression
} [ ,...n ]
Arguments
Sütun ifadesi
Sütunda bir sütun veya toplama dışı bir hesaplama belirtir. Bu sütun bir tabloya, türetilmiş tabloya veya görünüme ait olabilir. Sütunun SELECT deyiminin FROM yan tümcesinde görünmesi gerekir, ancak SELECT listesinde görünmesi gerekmez.
Geçerli ifadeler için bkz. ifade.
Sütunun SELECT deyiminin FROM yan tümcesinde görünmesi gerekir, ancak SELECT listesinde görünmesi gerekmez. Ancak, seçme< listesindeki herhangi bir ayrım olmayan ifadedeki >her tablo veya görünüm sütunu GROUP BY listesine eklenmelidir:
Aşağıdaki deyimlere izin verilir:
SELECT ColumnA, ColumnB FROM T GROUP BY ColumnA, ColumnB;
SELECT ColumnA + ColumnB FROM T GROUP BY ColumnA, ColumnB;
SELECT ColumnA + ColumnB FROM T GROUP BY ColumnA + ColumnB;
SELECT ColumnA + ColumnB + constant FROM T GROUP BY ColumnA, ColumnB;
Aşağıdaki deyimlere izin verilmez:
SELECT ColumnA, ColumnB FROM T GROUP BY ColumnA + ColumnB;
SELECT ColumnA + constant + ColumnB FROM T GROUP BY ColumnA + ColumnB;
Sütun ifadesi aşağıdakileri içeremez:
- SELECT listesinde tanımlanan bir sütun diğer adı. FROM yan tümcesinde tanımlanan türetilmiş bir tablo için sütun diğer adı kullanabilir.
- Metin, ntext veya resim türünde bir sütun. Ancak, geçerli bir veri türü değeri döndüren bir işlev için bağımsız değişken olarak metin, ntext veya görüntü sütununu kullanabilirsiniz. Örneğin, ifade SUBSTRING() ve CAST() kullanabilir. Bu, HAVING yan tümcesindeki ifadeler için de geçerlidir.
- xml veri türü yöntemleri. Xml veri türü yöntemlerini kullanan kullanıcı tanımlı bir işlev içerebilir. Xml veri türü yöntemlerini kullanan hesaplanan bir sütun içerebilir.
- Bir alt sorgu. Hata 144 döndürülür.
- Dizinli görünümden bir sütun.
GROUP BY sütun-ifadesi [ ,... n ]
SELECT deyimi sonuçlarını bir veya daha fazla sütun ifadesi listesindeki değerlere göre gruplandırın.
Örneğin, bu sorgu Ülke, Bölge ve Satış sütunlarını içeren bir Sales tablosu oluşturur. Dört satır ekler ve satırlardan ikisi Ülke ve Bölge için eşleşen değerlere sahiptir.
CREATE TABLE Sales ( Country VARCHAR(50), Region VARCHAR(50), Sales INT );
INSERT INTO sales VALUES (N'Canada', N'Alberta', 100);
INSERT INTO sales VALUES (N'Canada', N'British Columbia', 200);
INSERT INTO sales VALUES (N'Canada', N'British Columbia', 300);
INSERT INTO sales VALUES (N'United States', N'Montana', 100);
Sales tablosu şu satırları içerir:
| Country | Region | Sales |
|---|---|---|
| Canada | Alberta | 100 |
| Canada | Britanya Kolumbiyası | 200 |
| Canada | Britanya Kolumbiyası | 300 |
| United States | Montana | 100 |
Bu sonraki sorgu Ülke ve Bölge gruplarını oluşturur ve her değer bileşimi için toplam toplamı döndürür.
SELECT Country, Region, SUM(sales) AS TotalSales
FROM Sales
GROUP BY Country, Region;
Ülke ve Bölge için 3 değer bileşimi bulunduğundan sorgu sonucunun 3 satırı vardır. Kanada ve Britanya Kolumbiyası için TotalSales iki satırın toplamıdır.
| Country | Region | TotalSales |
|---|---|---|
| Canada | Alberta | 100 |
| Canada | Britanya Kolumbiyası | 500 |
| United States | Montana | 100 |
TOPLAMAYA GÖRE GRUPLANDıR
Sütun ifadelerinin her birleşimi için bir grup oluşturur. Buna ek olarak, sonuçları alt toplamlara ve genel toplamlara "yuvarlar". Bunu yapmak için, grupları ve toplamaları oluşturduğu sütun ifadelerinin sayısını azaltarak sağdan sola doğru hareket eder.
Sütun sırası ROLLUP çıkışını etkiler ve sonuç kümesindeki satır sayısını etkileyebilir.
Örneğin, GROUP BY ROLLUP (col1, col2, col3, col4) aşağıdaki listelerde sütun ifadelerinin her birleşimi için gruplar oluşturur.
- col1, col2, col3, col4
- col1, col2, col3, NULL
- col1, col2, NULL, NULL
- col1, NULL, NULL, NULL
- NULL, NULL, NULL, NULL --Bu genel toplamdır
Bu kod, önceki örnekteki tabloyu kullanarak basit bir GROUP BY yerine GROUP BY ROLLUP işlemini çalıştırır.
SELECT Country, Region, SUM(Sales) AS TotalSales
FROM Sales
GROUP BY ROLLUP (Country, Region);
Sorgu sonucu, ROLLUP olmadan basit GROUP BY ile aynı toplamalara sahiptir. Buna ek olarak, Ülke'nin her değeri için alt toplamlar oluşturur. Son olarak, tüm satırlar için genel bir toplam verir. Sonuç şöyle görünür:
| Country | Region | TotalSales |
|---|---|---|
| Canada | Alberta | 100 |
| Canada | Britanya Kolumbiyası | 500 |
| Canada | NULL | 600 |
| United States | Montana | 100 |
| United States | NULL | 100 |
| NULL | NULL | 700 |
KÜBÜNE GÖRE GRUPLANDıR ( )
GROUP BY CUBE, tüm olası sütun bileşimleri için gruplar oluşturur. GROUP BY CUBE (a, b) için sonuçların benzersiz değerleri (a, b), (NULL, b), (a, NULL) ve (NULL, NULL) grupları vardır.
Bu kod, önceki örneklerde yer alan tabloyu kullanarak Ülke ve Bölge üzerinde GROUP BY CUBE işlemini çalıştırır.
SELECT Country, Region, SUM(Sales) AS TotalSales
FROM Sales
GROUP BY CUBE (Country, Region);
Sorgu sonucunda benzersiz değerler (Ülke, Bölge), (NULL, Bölge), (Ülke, NULL) ve (NULL, NULL) grupları vardır. Sonuçlar şöyle görünür:
| Country | Region | TotalSales |
|---|---|---|
| Canada | Alberta | 100 |
| NULL | Alberta | 100 |
| Canada | Britanya Kolumbiyası | 500 |
| NULL | Britanya Kolumbiyası | 500 |
| United States | Montana | 100 |
| NULL | Montana | 100 |
| NULL | NULL | 700 |
| Canada | NULL | 600 |
| United States | NULL | 100 |
GRUPLANDıRMA KÜMELERINE GÖRE GRUPLANDıRMA ( )
GRUPLANDıRMA KÜMELERI seçeneği, birden çok GROUP BY yan tümcesini tek bir GROUP BY yan tümcesinde birleştirme olanağı sağlar. Sonuçlar, belirtilen grupların UNION ALL değerine eşdeğerdir.
Örneğin, GROUP BY ROLLUP (Country, Region) aynı GROUP BY GROUPING SETS ( ROLLUP (Country, Region) ) sonuçları döndür.
GRUPLANDıRMA KÜMELERI iki veya daha fazla öğeye sahip olduğunda, sonuçlar öğelerin birleşimidir. Bu örnek, Ülke ve Bölge için ROLLUP ve KÜP sonuçlarının birleşimini döndürür.
SELECT Country, Region, SUM(Sales) AS TotalSales
FROM Sales
GROUP BY GROUPING SETS ( ROLLUP (Country, Region), CUBE (Country, Region) );
Sonuçlar, iki GROUP BY deyiminin birleşimini döndüren bu sorguyla aynıdır.
SELECT Country, Region, SUM(Sales) AS TotalSales
FROM Sales
GROUP BY ROLLUP (Country, Region)
UNION ALL
SELECT Country, Region, SUM(Sales) AS TotalSales
FROM Sales
GROUP BY CUBE (Country, Region);
SQL, gruplandırma KÜMELERI listesi için oluşturulan yinelenen grupları birleştirmez. Örneğin, içinde GROUP BY ( (), CUBE (Country, Region) )her iki öğe de genel toplam için bir satır döndürür ve her iki satır da sonuçlarda listelenir.
GRUP ()
Genel toplamı oluşturan boş grubu belirtir. Bu, gruplandırma kümesinin öğelerinden biri olarak kullanışlıdır. Örneğin, bu deyim her ülkenin/bölgenin toplam satışını verir ve ardından tüm ülkeler/bölgeler için genel toplamı verir.
SELECT Country, SUM(Sales) AS TotalSales
FROM Sales
GROUP BY GROUPING SETS ( Country, () );
GROUP BY ALL sütun-ifadesi [ ,... n ]
Şunlar için geçerlidir: SQL Server ve Azure SQL Veritabanı
Note
Bu söz dizimi yalnızca geriye dönük uyumluluk için sağlanır. Gelecekteki bir sürümde kaldırılacaktır. Yeni geliştirme çalışmalarında bu söz dizimini kullanmaktan kaçının ve şu anda bu söz dizimini kullanan uygulamaları değiştirmeyi planlayın.
WHERE yan tümcesindeki arama ölçütlerini karşılayıp karşılamadıklarına bakılmaksızın tüm grupların sonuçlara dahil edilmeyeceğini belirtir. Arama ölçütlerini karşılamamış grupların toplama için NULL değeri vardır.
TÜMÜNE GÖRE GRUPLANDıR:
- Sorguda where yan tümcesi de varsa, uzak tablolara erişen sorgularda desteklenmez.
- FILESTREAM özniteliğine sahip sütunlarda başarısız olur.
GROUP BY sütun-ifadesi [ ,... n ] WITH { CUBE | ROLLUP }
Şunlar için geçerlidir: SQL Server ve Azure SQL Veritabanı
Note
Bu söz dizimi yalnızca geriye dönük uyumluluk için sağlanır. Yeni geliştirme çalışmalarında bu söz dizimini kullanmaktan kaçının ve şu anda bu söz dizimini kullanan uygulamaları değiştirmeyi planlayın.
(DISTRIBUTED_AGG) İLE
Şunlar için geçerlidir: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)
DISTRIBUTED_AGG sorgu ipucu, toplama işlemi gerçekleştirmeden önce yüksek düzeyde paralel işleme (MPP) sistemini belirli bir sütundaki tabloyu yeniden dağıtmaya zorlar. GROUP BY yan tümcesindeki yalnızca bir sütunda DISTRIBUTED_AGG sorgu ipucu bulunabilir. Sorgu tamamlandıktan sonra yeniden dağıtılan tablo bırakılır. Özgün tablo değiştirilmez.
NOT: DISTRIBUTED_AGG sorgu ipucu, önceki Analytics Platform Sistemi (PDW) sürümleriyle geriye dönük uyumluluk için sağlanır ve çoğu sorgunun performansını iyileştirmez. Varsayılan olarak, MPP toplamaların performansını artırmak için verileri gerektiği gibi yeniden dağıtır.
Genel Açıklamalar
GROUP BY, SELECT deyimiyle nasıl etkileşim kurar?
SEÇİN listesi:
- Vektör agregalar. Toplama işlevleri SELECT listesine dahil edilirse, GROUP BY her grup için bir özet değeri hesaplar. Bunlar vektör toplamaları olarak bilinir.
- Belirgin agregalar. AVG (DISTINCT column_name), COUNT (DISTINCT column_name) ve SUM (DISTINCT column_name) toplamları ROLLUP, KÜP ve GRUPLANDıRMA KÜMELERI ile desteklenir.
WHERE maddesi:
- SQL, herhangi bir gruplandırma işlemi gerçekleştirilmeden önce WHERE yan tümcesindeki koşulları karşılamayan Satırları kaldırır.
HAVING maddesi:
- SQL, sonuç kümesindeki grupları filtrelemek için having yan tümcesini kullanır.
ORDER BY yan tümcesi:
- Sonuç kümesini sıralamak için ORDER BY yan tümcesini kullanın. GROUP BY yan tümcesi sonuç kümesini sıralamaz.
NULL değerler:
- Gruplandırma sütunu NULL değerler içeriyorsa, tüm NULL değerler eşit kabul edilir ve tek bir grupta toplanır.
Sınırlamalar ve Kısıtlamalar
Şunlar için geçerlidir: SQL Server (2008'den başlayarak) ve Azure Synapse Analytics
Maksimum kapasite
ROLLUP, KÜP veya GRUPLANDıRMA KÜMESİ kullanan bir GROUP BY yan tümcesi için ifade sayısı üst sınırı 32'dir. Grup sayısı üst sınırı 4096'dır (212). GROUP BY yan tümcesinde 4096'dan fazla grup olduğundan aşağıdaki örnekler başarısız olur.
Aşağıdaki örnek 4097 (212 + 1) gruplandırma kümeleri oluşturur ve başarısız olur.
GROUP BY GROUPING SETS( CUBE(a1, ..., a12), b )Aşağıdaki örnek 4097 (212 + 1) grubu oluşturur ve başarısız olur. Hem hem de
CUBE ()()gruplandırma kümesi genel bir toplam satırı oluşturur ve yinelenen gruplandırma kümeleri ortadan kaldırılamaz.GROUP BY GROUPING SETS( CUBE(a1, ..., a12), ())Bu örnekte geriye dönük uyumlu söz dizimi kullanılır. 8192 (213) gruplandırma kümesi oluşturur ve başarısız olur.
GROUP BY CUBE (a1, ..., a13) GROUP BY a1, ..., a13 WITH CUBEKÜP veya ROLLUP içermeyen geriye dönük uyumlu GROUP BY yan tümceleri için, öğelere göre gruplandırma sayısı GROUP BY sütun boyutları, toplanan sütunlar ve sorguda yer alan toplama değerleriyle sınırlıdır. Bu sınır, ara sorgu sonuçlarını tutmak için gereken ara çalışma tablosundaki 8.060 bayt sınırından kaynaklanır. KÜP veya ROLLUP belirtildiğinde en fazla 12 gruplandırma ifadesine izin verilir.
ISO ve ANSI SQL-2006 GROUP BY Özellikleri desteği
GROUP BY yan tümcesi, SQL-2006 standardına dahil edilen tüm GROUP BY özelliklerini aşağıdaki söz dizimi özel durumları ile destekler:
Gruplama kümelerine, açık bir GRUPLANDıRMA KÜMELERI listesinin parçası olmadığı sürece GROUP BY yan tümcesinde izin verilmez. Örneğin,
GROUP BY Column1, (Column2, ...ColumnN) standart olarak izin verilir ancak Transact-SQL'de kullanılamaz. Transact-SQL, ve 'yi desteklerGROUP BY C1, GROUPING SETS ((Column2, ...ColumnN))GROUP BY Column1, Column2, ... ColumnN. Bunlar, öncekiGROUP BYörnektekine eşdeğerdir. Bu, ) öğesininGROUP BY Column1, (Column2, ...ColumnNolarak yanlış yorumlanabileceğiGROUP BY C1, GROUPING SETS ((Column2, ...ColumnN))olasılığını önlemektir ve bu da sembolik olarak eşdeğer değildir.Gruplandırma kümelerinin içinde gruplandırma kümelerine izin verilmez. Örneğin,
GROUP BY GROUPING SETS (A1, A2,...An, GROUPING SETS (C1, C2, ...Cn))SQL-2006 standardında izin verilir ancak Transact-SQL'de kullanılamaz. Transact-SQL, ilk GROUP BY örneğine benzer ve daha net bir söz dizimine sahip olan veyaGROUP BY GROUPING SETS( A1, A2,...An, C1, C2, ...Cn )öğesine izin verirGROUP BY GROUPING SETS( (A1), (A2), ... (An), (C1), (C2), ... (Cn) ).GROUP BY [ALL/DISTINCT] yalnızca sütun ifadeleri içeren basit bir GROUP BY yan tümcesinde izin verilir. GRUPLANDıRMA KÜMELERI, ROLLUP, KÜP, KÜPLE veya ROLLUP ile yapılarıyla buna izin verilmez. ALL varsayılandır ve örtükdür. Yalnızca geriye dönük uyumlu söz diziminde de izin verilir.
Desteklenen GROUP BY Özelliklerinin Karşılaştırması
Aşağıdaki tabloda, SQL sürümlerine ve veritabanı uyumluluk düzeyine göre desteklenen GROUP BY özellikleri açıklanmaktadır.
| Feature | SQL Server Integration Services | SQL Server uyumluluk düzeyi 100 veya üzeri | Uyumluluk düzeyi 90 olan SQL Server 2008 veya üzeri. |
|---|---|---|---|
| DISTINCT agregalar | WITH CUBE veya WITH ROLLUP için desteklenmez. | WITH CUBE, WITH ROLLUP, GROUPING SETS, CUBE veya ROLLUP için desteklenir. | Uyumluluk düzeyi 100 ile aynıdır. |
| GROUP BY yan tümcesinde KÜP veya ROLLUP adıyla kullanıcı tanımlı işlev | Kullanıcı tanımlı işlev dbo.cube(arg1,... argN) veya dbo.rollup(arg1,... argN) group by yan tümcesine izin verilir. Örneğin: SELECT SUM (x) FROM T GROUP BY dbo.cube(y); |
Kullanıcı tanımlı işlev dbo.cube (arg1,... argN**)** veya dbo.rollup(arg1,... argN) group by yan tümcesine izin verilmez. Örneğin: SELECT SUM (x) FROM T GROUP BY dbo.cube(y);Şu hata iletisi döndürülür: "'küp'|' anahtar sözcüğüne yakın yanlış söz dizimi rollup'." Bu sorunu önlemek için veya ile dbo.cube[dbo].[cube]dbo.rollupdeğiştirin.[dbo].[rollup]Aşağıdaki örne izin verilir: SELECT SUM (x) FROM T GROUP BY [dbo].[cube](y); |
Kullanıcı tanımlı işlev dbo.cube (arg1,... argN) veya dbo.rollup(arg1,... argN) group by yan tümcesine izin verilir Örneğin: SELECT SUM (x) FROM T GROUP BY dbo.cube(y); |
| GRUPLANDıRMA KÜMELERI | Desteklenmez | Supported | Supported |
| CUBE | Desteklenmez | Supported | Desteklenmez |
| ROLLUP | Desteklenmez | Supported | Desteklenmez |
| Group BY () gibi genel toplam | Desteklenmez | Supported | Supported |
| GROUPING_ID fonksiyonu | Desteklenmez | Supported | Supported |
| GRUPLAMA fonksiyonu | Supported | Supported | Supported |
| KÜP İLE | Supported | Supported | Supported |
| ROLLUP İLE | Supported | Supported | Supported |
| WITH CUBE veya WITH ROLLUP "yinelenen" gruplandırma kaldırma | Supported | Supported | Supported |
Examples
A. Basit bir GROUP BY yan tümcesi kullanma
Aşağıdaki örnek, tablodaki her SalesOrderID birinin toplamını SalesOrderDetail alır. Bu örnekte AdventureWorks kullanılmaktadır.
SELECT SalesOrderID, SUM(LineTotal) AS SubTotal
FROM Sales.SalesOrderDetail AS sod
GROUP BY SalesOrderID
ORDER BY SalesOrderID;
B. Birden çok tabloyla GROUP BY yan tümcesi kullanma
Aşağıdaki örnek, tabloya katılan City tablolardan Address her EmployeeAddress biri için çalışan sayısını alır. Bu örnekte AdventureWorks kullanılmaktadır.
SELECT a.City, COUNT(bea.AddressID) EmployeeCount
FROM Person.BusinessEntityAddress AS bea
INNER JOIN Person.Address AS a
ON bea.AddressID = a.AddressID
GROUP BY a.City
ORDER BY a.City;
C. bir ifadeyle GROUP BY yan tümcesi kullanma
Aşağıdaki örnek işlevini kullanarak her yılın toplam satışlarını DATEPART alır. Aynı ifade hem listede SELECT hem de yan tümcesinde GROUP BY bulunmalıdır.
SELECT DATEPART(yyyy,OrderDate) AS N'Year'
,SUM(TotalDue) AS N'Total Order Amount'
FROM Sales.SalesOrderHeader
GROUP BY DATEPART(yyyy,OrderDate)
ORDER BY DATEPART(yyyy,OrderDate);
D. GROUP BY yan tümcesini HAVING yan tümcesiyle kullanma
Aşağıdaki örnek, yan tümcesinde HAVING oluşturulan gruplardan hangilerinin sonuç kümesine GROUP BY dahil edilmesi gerektiğini belirtmek için yan tümcesini kullanır.
SELECT DATEPART(yyyy,OrderDate) AS N'Year'
,SUM(TotalDue) AS N'Total Order Amount'
FROM Sales.SalesOrderHeader
GROUP BY DATEPART(yyyy,OrderDate)
HAVING DATEPART(yyyy,OrderDate) >= N'2003'
ORDER BY DATEPART(yyyy,OrderDate);
Örnekler: Azure Synapse Analytics ve Paralel Veri Ambarı
E. GROUP BY yan tümcesinin temel kullanımı
Aşağıdaki örnek, her gündeki tüm satışların toplam tutarını bulur. Her gün için tüm satışların toplamını içeren bir satır döndürülür.
-- Uses AdventureWorksDW
SELECT OrderDateKey, SUM(SalesAmount) AS TotalSales FROM FactInternetSales
GROUP BY OrderDateKey ORDER BY OrderDateKey;
F. DISTRIBUTED_AGG ipucunun temel kullanımı
Bu örnekte, toplamayı gerçekleştirmeden önce aleti sütundaki CustomerKey tabloyu karıştırmaya zorlamak için DISTRIBUTED_AGG sorgu ipucu kullanılır.
-- Uses AdventureWorksDW
SELECT CustomerKey, SUM(SalesAmount) AS sas
FROM FactInternetSales
GROUP BY CustomerKey WITH (DISTRIBUTED_AGG)
ORDER BY CustomerKey DESC;
G. GROUP BY için Sözdizimi Çeşitlemeleri
Seçme listesinde toplama olmadığında, seçme listesindeki her sütunun GROUP BY listesine eklenmesi gerekir. Seçme listesindeki hesaplanan sütunlar GROUP BY listesinde listelenebilir, ancak gerekli değildir. Bunlar söz dizimsel olarak geçerli SELECT deyimlerine örnektir:
-- Uses AdventureWorks
SELECT LastName, FirstName FROM DimCustomer GROUP BY LastName, FirstName;
SELECT NumberCarsOwned FROM DimCustomer GROUP BY YearlyIncome, NumberCarsOwned;
SELECT (SalesAmount + TaxAmt + Freight) AS TotalCost FROM FactInternetSales GROUP BY SalesAmount, TaxAmt, Freight;
SELECT SalesAmount, SalesAmount*1.10 SalesTax FROM FactInternetSales GROUP BY SalesAmount;
SELECT SalesAmount FROM FactInternetSales GROUP BY SalesAmount, SalesAmount*1.10;
H. Birden çok GROUP BY ifadesiyle GROUP BY kullanma
Aşağıdaki örnek, sonuçları birden çok GROUP BY ölçüt kullanarak gruplar. Her OrderDateKey grubun içinde ile ayırt DueDateKeyedilebilen alt gruplar varsa, sonuç kümesi için yeni bir gruplandırma tanımlanır.
-- Uses AdventureWorks
SELECT OrderDateKey, DueDateKey, SUM(SalesAmount) AS TotalSales
FROM FactInternetSales
GROUP BY OrderDateKey, DueDateKey
ORDER BY OrderDateKey;
I. HAVING yan tümcesi ile GROUP BY yan tümcesi kullanma
Aşağıdaki örnek, yan tümcesinde oluşturulan ve sonuç kümesine HAVING eklenmesi gereken grupları belirtmek için yan tümcesini kullanırGROUP BY. Sonuçlara yalnızca 2004 veya sonraki bir tarihte sipariş tarihleri olan gruplar dahil edilecek.
-- Uses AdventureWorks
SELECT OrderDateKey, SUM(SalesAmount) AS TotalSales
FROM FactInternetSales
GROUP BY OrderDateKey
HAVING OrderDateKey > 20040000
ORDER BY OrderDateKey;
Ayrıca Bkz.
GROUPING_ID (Transact-SQL)
GRUPLAŞMA (Transact-SQL)
SEÇ (Transact-SQL)
SELECT İfadesi (Transact-SQL)