Как использовать T-SQL Group By
Я знаю , что нужно иметь (хотя я не знаю , почему) в GROUP BY
положение о конце запроса SQL , который использует любые агрегатные функции , такие как count
, sum
, avg
и т.д.:
SELECT count(userID), userName
FROM users
GROUP BY userName
Когда еще было GROUP BY
бы полезно и каковы были разветвления производительности?
Ответов (5)5
Чтобы получить количество виджетов из каждой категории виджетов, которая имеет более 5 виджетов, вы можете сделать это:
SELECT WidgetCategory, count(*)
FROM Widgets
GROUP BY WidgetCategory
HAVING count(*) > 5
Предложение "иметь" - это то, о чем люди часто забывают, вместо этого предпочитая получать все свои данные клиенту и повторять их там.
GROUP BY похож на DISTINCT тем, что группирует несколько записей в одну.
В этом примере, заимствованном из http://www.devguru.com/technologies/t-sql/7080.asp , перечислены отдельные продукты в таблице «Продукты».
SELECT Product FROM Products GROUP BY Product
Product
-------------
Desktop
Laptop
Mouse
Network Card
Hard Drive
Software
Book
Accessory
Преимущество GROUP BY перед DISTINCT заключается в том, что он может предоставить вам детальный контроль при использовании с предложением HAVING.
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