教程 > sql 教程 > 阅读:43

sql group by——迹忆客-ag捕鱼王app官网

sql group by语句与 select 语句配合使用,用来将相同的数据进行分组。此 group by 语句跟在 select 语句的 where 子句之后,在 order by 子句之前。

语法

group by 语句的基本语法如下。

select column1, column2
from table_name
where [ conditions ]
group by column1, column2
order by column1, column2

group by 语句必须跟在 where 语句中的条件之后,并且必须在 order by 子句之前。顺序很重要,如果顺序错误的话,sql是会报错的。

示例

customers 表

 ---- ---------- ----- ----------- ---------- 
| id | name     | age | address   | salary   |
 ---- ---------- ----- ----------- ---------- 
|  1 | ramesh   |  32 | ahmedabad |  2000.00 |
|  2 | khilan   |  25 | delhi     |  1500.00 |
|  3 | kaushik  |  23 | kota      |  2000.00 |
|  4 | chaitali |  25 | mumbai    |  6500.00 |
|  5 | hardik   |  27 | bhopal    |  8500.00 |
|  6 | komal    |  22 | mp        |  4500.00 |
|  7 | muffy    |  24 | indore    | 10000.00 |
 ---- ---------- ----- ----------- ---------- 

如果要想知道每个客户的工资总额,那么可以使用 group by 对salary字段进行分组,然后使用聚合函数sum进行组内相加。

sql> select name, sum(salary) from customers
   group by name;

结果如下

 ---------- ------------- 
| name     | sum(salary) |
 ---------- ------------- 
| chaitali |     6500.00 |
| hardik   |     8500.00 |
| kaushik  |     2000.00 |
| khilan   |     1500.00 |
| komal    |     4500.00 |
| muffy    |    10000.00 |
| ramesh   |     2000.00 |
 ---------- ------------- 

现在,让我们看一个表,其中 customers 表的name字段有重复的

 ---- ---------- ----- ----------- ---------- 
| id | name     | age | address   | salary   |
 ---- ---------- ----- ----------- ---------- 
|  1 | ramesh   |  32 | ahmedabad |  2000.00 |
|  2 | ramesh   |  25 | delhi     |  1500.00 |
|  3 | kaushik  |  23 | kota      |  2000.00 |
|  4 | kaushik  |  25 | mumbai    |  6500.00 |
|  5 | hardik   |  27 | bhopal    |  8500.00 |
|  6 | komal    |  22 | mp        |  4500.00 |
|  7 | muffy    |  24 | indore    | 10000.00 |
 ---- ---------- ----- ----------- ---------- 

现在,如果要想知道每个客户的工资总额,那么使用 group by 语句

sql> select name, sum(salary) from customers
   group by name;

结果如下

 --------- ------------- 
| name    | sum(salary) |
 --------- ------------- 
| hardik  |     8500.00 |
| kaushik |     8500.00 |
| komal   |     4500.00 |
| muffy   |    10000.00 |
| ramesh  |     3500.00 |
 --------- ------------- 

查看笔记

扫码一下
查看教程更方便
网站地图