GROUP BY 如何工作?

2021-12-05 00:00:00 sql oracle

假设我有一个带有属性的表 Tab1 - a1a2 等等.没有一个属性是唯一的.

Suppose I have a table Tab1 with attributes - a1, a2, ... etc. None of the attributes are unique.

以下查询的性质是什么?它会始终返回一行吗?

What will be the nature of the following query? Will it return a single row always?

SELECT a1, a2, sum(a3) FROM Tab1 GROUP BY a1, a2

推荐答案

GROUP BYGROUP BY 字段的每个唯一组合返回一行.因此,在您的示例中, (a1, a2) 出现在 Tab1 行中的每个不同组合都会导致查询中的一行代表具有给定组合的行组按字段值分组.SUM() 等聚合函数是针对每个组的成员计算的.

GROUP BY returns a single row for each unique combination of the GROUP BY fields. So in your example, every distinct combination of (a1, a2) occurring in rows of Tab1 results in a row in the query representing the group of rows with the given combination of group by field values . Aggregate functions like SUM() are computed over the members of each group.

相关文章