Nasıl yaparım T-SQL GROUP BY kullanmak

oy
28

Ben (neden bilmiyorum rağmen) ben olması gerekir biliyorum GROUP BYgibi herhangi toplama işlevlerini kullanan bir SQL sorgusunun ucunda maddesini count, sum, avg, vb:

SELECT count(userID), userName
FROM users
GROUP BY userName

Başka ne zaman olacağını GROUP BYyararlı olabilir ve performans yansımaları nelerdir?

Oluştur 05/08/2008 saat 19:55
kaynak kullanıcı
Diğer dillerde...                            


5 cevaplar

oy
30

5'ten fazla widget her widget kategorisinden widget sayısını almak için, bunu yapabilirdi:

SELECT WidgetCategory, count(*)
FROM Widgets
GROUP BY WidgetCategory
HAVING count(*) > 5

"Sahip" hükmü şey insanlar genellikle yerine müşteriye tüm verileri almak için tercih ve orada içinden yineleme, unutmak olduğunu.

Cevap 05/08/2008 saat 20:32
kaynak kullanıcı

oy
13

GRUP TARAFINDAN birine o grupların birden kayıtlarda DISTINCT benzer.

Ödünç Bu örnek, http://www.devguru.com/technologies/t-sql/7080.asp , Ürünler tabloda farklı ürünleri listeler.

SELECT Product FROM Products GROUP BY Product

Product
-------------
Desktop
Laptop
Mouse
Network Card
Hard Drive
Software
Book
Accessory

DISTINCT üzerinde GROUP BY avantajı, bir HAVING yan tümcesi ile kullanıldığında bu size ayrıntılı denetim verebilir olmasıdır.

SELECT Product, count(Product) as ProdCnt
FROM Products
GROUP BY Product
HAVING count(Product) > 2

Product      ProdCnt
--------------------
Desktop          10
Laptop            5
Mouse             3
Network Card      9
Software          6
Cevap 19/08/2008 saat 15:02
kaynak kullanıcı

oy
3

kayıtlar döndürülür önce (bir örtülü tür olduğundan) kuvvetler Tüm set By Grup doldurulması.

Bu nedenle (ve diğerleri), bir alt sorguda bir grup tarafından hiç kullanmıyorum.

Cevap 05/08/2008 saat 20:01
kaynak kullanıcı

oy
2

etiketler google örnek olabileceğini kullanılan sayısını sayma:

SELECT TagName, Count(*)
AS TimesUsed
FROM Tags
GROUP BY TagName ORDER TimesUsed

Sadece etiketlerin ayrı değer istiyorsanız, ben kullanmayı tercih ediyorum DISTINCTdeyimi.

SELECT DISTINCT TagName
FROM Tags
ORDER BY TagName ASC
Cevap 05/08/2008 saat 19:58
kaynak kullanıcı

oy
0

Eğer ortalama veya verilerin bir demet özetleyecek bir rapor oluşturmak istediğinizde GRUP TARAFINDAN da yardımcı olur. Bölüm kimliği ve SUM tüm satış geliri veya AVG tarafından yapabilirsiniz GRUBU her ay için satış sayılır.

Cevap 05/08/2008 saat 20:00
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more