这是因为,当我们按两列分组时,它会说 "Group them so that all of those with the same Subject and Semester are in the same group, and then calculate all the aggregate functions (计数,求和,平均等) for each of those groups" . 在这个例子中,事实证明了这一点,当我们计算它们时,有第 three 人在第一学期做ITB001,而 two 在第二学期做这件事 . 做MKB114的人都在第一学期,所以没有第二学期的行(没有数据适合组"MKB114, Semester 2")
希望这是有道理的 .
1685
GROUP BY子句与聚合函数结合使用,以按一列或多列对结果集进行分组 . 例如 . :
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
记住这个顺序:
1)SELECT(用于从数据库中选择数据)2)FROM(子句用于列出表)3)WHERE(子句用于过滤记录)4)GROUP BY(子句可以在SELECT语句中使用)跨多个记录收集数据并按一个或多个列对结果进行分组)5)HAVING(子句与GROUP BY子句结合使用,将返回行组限制为只有条件为TRUE的那些)6)ORDER BY (关键字用于对结果集进行排序)
2 回答
Group By X
表示 put all those with the same value for X in the one group .Group By X, Y
表示 put all those with the same values for both X and Y in the one group .为了说明一个例子,假设我们有下表,与谁在大学的哪个科目上学习有关:
仅在主题列上使用
group by
时;说:你会得到类似的东西:
...因为ITB001有5个条目,MKB114有2个条目
如果我们要
group by
两列:我们会得到这个:
这是因为,当我们按两列分组时,它会说 "Group them so that all of those with the same Subject and Semester are in the same group, and then calculate all the aggregate functions (计数,求和,平均等) for each of those groups" . 在这个例子中,事实证明了这一点,当我们计算它们时,有第 three 人在第一学期做ITB001,而 two 在第二学期做这件事 . 做MKB114的人都在第一学期,所以没有第二学期的行(没有数据适合组"MKB114, Semester 2")
希望这是有道理的 .
GROUP BY子句与聚合函数结合使用,以按一列或多列对结果集进行分组 . 例如 . :
记住这个顺序:
如果使用聚合函数,则可以使用所有这些,这是必须设置的顺序,否则可能会出错 .
聚合函数是: