为了账号安全,请及时绑定邮箱和手机立即绑定

在多列上使用GROUPBY

在多列上使用GROUPBY

开满天机 2019-06-19 10:18:10
在多列上使用GROUPBY我明白GROUP BY x但如何GROUP BY x, y工作,这意味着什么?
查看完整描述

3 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

Group By X手段将X值相同的所有值放在一个组中.

Group By X, Y手段将X和Y值相同的所有值放在一个组中.

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

Table: Subject_Selection

Subject   Semester   Attendee---------------------------------ITB001    1          John
ITB001    1          Bob
ITB001    1          Mickey
ITB001    2          Jenny
ITB001    2          James
MKB114    1          John
MKB114    1          Erica

当您使用group by仅在主题栏上;例如:

select Subject, Count(*)from Subject_Selectiongroup by Subject

你会得到这样的东西:

Subject    Count------------------------------ITB001     5MKB114     2

.因为ITB 001有5个条目,MKB 114有2个条目

如果我们group by两栏:

select Subject, Semester, Count(*)from Subject_Selectiongroup by Subject, Semester

我们会得到这个:

Subject    Semester   Count------------------------------ITB001     1          3ITB001     2       
   2MKB114     1          2

这是因为,当我们按两列分组时,它是这样说的“将它们分组,使所有具有相同科目和学期的学生都在同一组中,然后计算所有的聚合函数。(计数、总和、平均数等)每一组“..在这个例子中,当我们计算它们时,就可以看到在第一学期做IT B 001的人,以及在第二学期做。两人都是在第一学期,所以第二学期没有排(没有数据适合小组“MKB 114,第二学期”)。

希望这是有意义的。


查看完整回答
反对 回复 2019-06-19
?
慕标5832272

TA贡献1966条经验 获得超4个赞

这个GROUP BY子句与聚合函数一起使用,以将结果集按一个或多个列分组。例如:

SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_name;

记住这个命令:

1)SELECT(用于从数据库中选择数据)

2)FROM(子句用于列出表)

3)WHERE(子句用于过滤记录)

4)GROUP BY(子句可在SELECT语句中用于跨多个记录收集数据,并将结果分组为一个或多个列)

5)HAN(子句与GROUP BY子句结合使用,以限制返回的行组仅限于条件为真的行)

6)ORDERBY(关键字用于对结果集进行排序)

如果使用聚合函数,则可以使用所有这些函数,这是必须设置它们的顺序,否则可能会出现错误。

合计职能是:

min返回给定列中的最小值。

SUM返回给定列中数值的和。

avg返回给定列的平均值。

Count返回给定列中的值总数。

Count(*)返回表中的行数


查看完整回答
反对 回复 2019-06-19
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

我给你举几个例子。如果您有一个这样使用聚合函数的产品表,下面是两个场景:从产品中选择AVG(INstock);这将计算Products表的平均库存单位。现在,您要按产品类别计算库存单位,您必须使用AVG函数和GROUP BY子句,如:从产品组(按类别)中选择类别ID,AVG(INstock);

查看完整回答
反对 回复 2019-06-19
  • 3 回答
  • 0 关注
  • 1199 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信