postgresql distinct和group by
时间: 2023-09-10 18:11:24 浏览: 73
oracle中使用group by优化distinct
`DISTINCT`和`GROUP BY`都是用于去除重复的行。但是它们的使用场景和效果不同。
`DISTINCT`关键字用于返回不同的值,可以应用在一个或多个列上。例如:
```sql
SELECT DISTINCT column1 FROM table;
```
这将返回`column1`列中不同的值。如果你需要返回多个列中不同的组合,可以这样写:
```sql
SELECT DISTINCT column1, column2 FROM table;
```
`GROUP BY`关键字用于将数据按照指定的列进行分组,然后对每个组进行聚合计算。例如:
```sql
SELECT column1, COUNT(*) FROM table GROUP BY column1;
```
这将返回`table`表中按照`column1`列分组后,每组中行数的统计结果。
需要注意的是,使用`GROUP BY`时必须指定一个或多个聚合函数,例如`COUNT`、`SUM`、`AVG`等等。而`DISTINCT`则没有这个限制。
所以,如果你想要得到每个组的聚合结果,使用`GROUP BY`;如果你只想得到不同的值,使用`DISTINCT`。
阅读全文