使用 GROUP BY 子句时,一定要记住下面的规则:
|
1. 不能 GROUP BY text、image 或 bit 数据类型的列 |
|
2. SELECT 列表中指定的每一列也必须出现在 GROUP BY 子句中,除非这列是用于聚合函数。 |
|
3. 不能 GROUP BY 列的别名。 这是说 GROUP BY 字段列表中的所有字段必须是实际存在于 FROM 子句中指定的表中的列。 |
|
4. 进行分组前可以使用 WHERE 子句消除不满足条件的行。 |
|
5. 使用 GROUP BY 子句返回的组没有特定的顺序。可以使用 ORDER BY 子句指定想要的排序次序。 |
比如例子:
ID name positionNo number
1 paper 1 10
2 paper 2 20
3 paper 3 30
4 pen 1 1
5 pen 2 1
6 pencil 1 1
7 pencil 3 1
SQL> select name sum(number) totalnum
from tablename
group by name ;
此时, 将按name分组, 每一个组将返回一条记录,totalnum 中是改组中所number 之和。
name totalnium
paper 60
pen 2
pencil 2