我知道我需要有(虽然我不知道为什么)a GROUP BY 条款在结束SQL查询使用的任何总体功能喜欢 count, sum, avg, 等:

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

当其他人会 GROUP BY 是有用的,什么是性能的影响?

有帮助吗?

解决方案

检索的数量的部件来自每个部件的类别,已有超过5件你可以做到这一点:

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

在"具有"条款是什么人们常常忘记,而不是选择的检索他们所有的数据向客户和迭代过它在那里。

其他提示

小组通过类似于不同在于它的团体多次记录到的一种。

这个例子中,借用了 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

优势的组通过不同的是,它可以给你一颗粒状的控制时使用的一个具有条款。

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

小组通过部队的整套填充之前返回的记录(因为它是一个隐含的排序).

由于这个原因(和其他许多人),从来没有使用一个集团通过在一个子查询。

计数的次数标签是使用可能是一个谷歌例如:

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

如果你只是想要一个不同的价值的标签,我更愿意使用 DISTINCT 发言。

SELECT DISTINCT TagName
FROM Tags
ORDER BY TagName ASC

集团也可以帮助当你想要产生一份报告,平均或总结一堆的数据。你可以组由新闻部ID和总结的所有销售收入或平均数的销售每个月。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top