使用 GROUP BY 分组多行 GROUP BY 子句用来为结果集中的每一行产生聚合值。如果聚合函数没有使用 GROUP BY 子句,则只为 SELECT 语句报告一个聚合值。以下示例返回分类 2 中每种产品已销售的单位数量:USE Northwind SELECT OrdD.ProductID AS ProdID, SUM(OrdD.Quantity) AS AmountSold FROM [Order Details] AS OrdD JOIN Products as Prd ON OrdD.ProductID = Prd.ProductID AND Prd.CategoryID = 2 GROUP BY OrdD.ProductID下面是结果集:ProdID AmountSold ----------- ----------- 3 328 4 453 5 298 6 301 8 372 15 122 44 601 61 603 63 445 65 745 66 239 77 791 (12 row(s) affected)
那我要按mclass_1里面的类别全部显示呢,应该怎么写呢
mobile表里面的全部数据,按mclass_1列里面的类别分类显示
select mclass_1,sum(其余字段1),max(其余字段2)…… from moblie GROUP BY mclass_1注:只要是聚合函数就可以!!!
GROUP BY 子句用来为结果集中的每一行产生聚合值。如果聚合函数没有使用 GROUP BY 子句,则只为 SELECT 语句报告一个聚合值。以下示例返回分类 2 中每种产品已销售的单位数量:USE Northwind
SELECT OrdD.ProductID AS ProdID,
SUM(OrdD.Quantity) AS AmountSold
FROM [Order Details] AS OrdD JOIN Products as Prd
ON OrdD.ProductID = Prd.ProductID
AND Prd.CategoryID = 2
GROUP BY OrdD.ProductID下面是结果集:ProdID AmountSold
----------- -----------
3 328
4 453
5 298
6 301
8 372
15 122
44 601
61 603
63 445
65 745
66 239
77 791 (12 row(s) affected)
列1 列2
----------
1 34
1 45
2 56
2 10你用group by 对列1分组 你想得到:列1 列2
----------
1 ?? <<======这里是写34呢,还是45?? 你都不知道,电脑能知道吗?能懂你的意思吗?
2 ?? <<======你都没告诉sql你是想求和,还是求最大,最小?所以你明确告诉sql你想做什么!如:select 列1,max(列2) 最大,min(列2) 最小,sum(列2) 和,avg(列2) 平均 group by 列1