How does GROUP BY work?(GROUP BY 如何工作?)
问题描述
假设我有一个带有属性的表 Tab1 - a1、a2 等等.没有一个属性是唯一的.
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 BY 为 GROUP 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.
这篇关于GROUP BY 如何工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:GROUP BY 如何工作?
基础教程推荐
- 如何根据该 XML 中的值更新 SQL 中的 XML 2021-01-01
- 什么是 orradiag_<user>文件夹? 2022-01-01
- 表 './mysql/proc' 被标记为崩溃,应该修复 2022-01-01
- 二进制文件到 SQL 数据库 Apache Camel 2021-01-01
- oracle区分大小写的原因? 2021-01-01
- 在多列上分布任意行 2021-01-01
- MySQL 中的类型:BigInt(20) 与 Int(20) 2021-01-01
- mysql选择动态行值作为列名,另一列作为值 2021-01-01
- 如何在 SQL 中将 Float 转换为 Varchar 2021-01-01
- 在 MySQL 中:如何将表名作为存储过程和/或函数参数传递? 2021-01-01
