postgresql group by
子句用于将具有相同数据的表中的这些行分组在一起。 它与select
语句一起使用。
group by
子句通过多个记录收集数据,并将结果分组到一个或多个列。 它也用于减少输出中的冗余。
语法:
select column-list
from table_name
where [conditions ]
group by column1, column2....columnn
order by column1, column2....columnn
注意:在
group by
多个列的情况下,您使用的任何列进行分组时,要确保这些列应在列表中可用。
看看下面的例子:
我们来看一下表“employees
”,具有以下数据。
执行以下查询:
select name, sum(salary)
from employees
group by name;
查询得到如下结果 -
再来看看下面这个例子:
我们在“employees
”表中插入一些重复的记录。添加以下数据:
insert into employees values (6, '李洋', 24, '深圳市福田区中山路', 135000);
insert into employees values (7, 'manisha', 19, 'noida', 125000);
insert into employees values (8, 'larry', 45, 'texas', 165000);
现在有以下数据,有一些数据是重复的 -
执行以下查询以消除冗余:
select name, sum(salary)
from employees
group by name;
上面的sql语句是按名字(name
)执行分组统计每个名字的薪水总额,如:两个名字叫作李洋的薪水总额是:320000
等等,得到结果如下 -
在上面的例子中,当我们使用group by name
时,可以看到重复的名字数据记录被合并。 它指定group by
减少冗余。