PostgreSQL(GROUP BY子句)分组 与SELECT一起使用减少冗余数据

2023年 7月 12日 41.3k 0

PostgreSQL GROUP BY子句用于将具有相同数据的表中的这些行分组在一起。 它与SELECT语句一起使用。

GROUP BY子句通过多个记录收集数据,并将结果分组到一个或多个列。 它也用于减少输出中的冗余。

语法:

SELECT column-list  
FROM table_name  
WHERE [conditions ]  
GROUP BY column1, column2....columnN  
ORDER BY column1, column2....columnN

SQL

注意:在GROUP BY多个列的情况下,您使用的任何列进行分组时,要确保这些列应在列表中可用。

看看下面的例子:

我们来看一下表“EMPLOYEES”,具有以下数据。

PostgreSQL(GROUP BY子句)分组 与SELECT一起使用减少冗余数据

执行以下查询:

SELECT NAME, SUM(SALARY)   
FROM EMPLOYEES   
GROUP BY NAME;

SQL

查询得到如下结果 - PostgreSQL(GROUP BY子句)分组 与SELECT一起使用减少冗余数据

如何减少冗余数据:

再来看看下面这个例子:

我们在“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);

SQL

现在有以下数据,有一些数据是重复的 -

PostgreSQL(GROUP BY子句)分组 与SELECT一起使用减少冗余数据

执行以下查询以消除冗余:

SELECT NAME, SUM(SALARY)   
FROM EMPLOYEES   
GROUP BY NAME;

SQL

上面的SQL语句是按名字(NAME)执行分组统计每个名字的薪水总额,如:两个名字叫作李洋的薪水总额是:320000等等,得到结果如下 -

PostgreSQL(GROUP BY子句)分组 与SELECT一起使用减少冗余数据

在上面的例子中,当我们使用GROUP BY NAME时,可以看到重复的名字数据记录被合并。 它指定GROUP BY减少冗余。

相关文章

oracle 查询改写
PostgreSQL系数据库使用COPY导数时如何实现增量及重复数据更新导入
oracle 自动撤销
oracle NLS_LANGUAGE
Oracle NetSuite 客户说 | 借数字化之力“轻装”出海,让中国品牌全球热卖
脚本:自动生成精准的Oracle AWR报告

发布评论