在多个列上使用GROUPBY

我理解x分组的意义

但是按x,y分组是如何工作的,这意味着什么

按X分组表示将X值相同的所有对象放入一组

按X、Y分组表示将X和Y值相同的所有对象放在一个组中

为了举例说明,假设我们有下表,关于谁在大学学习什么科目:

表格:主题选择
+---------+----------+----------+
|科目|学期|与会者|
+---------+----------+----------+
|ITB001 | 1 |约翰|
|ITB001 | 1 |鲍勃|
|ITB001 | 1 |米奇|
|ITB001 | 2 |珍妮|
|ITB001 | 2 |詹姆斯|
|MKB114 | 1 |约翰|
|MKB114 | 1 |埃里卡|
+---------+----------+----------+

仅在“主题”列上使用“分组依据”;说:

选择主题,计数(*)
从主题选择
按主题分组

您将得到如下结果:

+---------+-------+
|受试者|计数|
+---------+-------+
|ITB001 | 5|
|MKB114 | 2|
+---------+-------+

…因为ITB001有5个条目,MKB114有2个条目

如果我们通过两列对进行分组:

选择科目、学期、计数(*)
从主题选择
按科目分组,每学期

我们将得到:

+---------+----------+-------+
|科目|学期|计数|
+---------+----------+-------+
|ITB001 | 1 | 3|
|ITB001 | 2 | 2|
|MKB114 | 1 | 2|
+---------+----------+-------+

这是因为,当我们按两列进行分组时,它是在说“;将他们分组,使所有具有相同科目和学期的学生都在同一组,然后计算每个组的所有聚合函数(计数、求和、平均值等)。在这个例子中,当我们统计他们时,有三个人在第一学期做这件事,两个人在第二学期做这件事。做MKB114的两个人都在第一学期,所以第二学期没有行(没有数据属于“MKB114,第二学期”组)

希望这是有道理的

发表评论