五、多表连接查询——数据分组

喜欢ヅ旅行 2023-06-23 06:58 77阅读 0赞

五、多表连接查询——数据分组

1.数据分组背景

当汇总成绩时,需要年级之间的横向对比,比如高中一年级,然后将一年级1班、2班、…,一直到所有班级的成绩进行对比,这个时候就需要分组汇总进行统计聚合。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjgzMDY5Nw_size_16_color_FFFFFF_t_70

2.如何使用分组查询

(1)语法如下:

  1. select 列名或者聚合函数 from 表名
  2. [where 条件表达式]
  3. group by 分组列;

(2)示例1:

根据class列进行聚合。

  1. select * from grade_score group by class;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjgzMDY5Nw_size_16_color_FFFFFF_t_70 1

  1. #count(*)表示计算查询的数据有多少条
  2. select *,count(*) from grade_score group by class;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjgzMDY5Nw_size_16_color_FFFFFF_t_70 2

(3)示例2:

使用聚合函数求每个年级的总成绩。

  1. select *,sum(score) from grade_score group by class;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjgzMDY5Nw_size_16_color_FFFFFF_t_70 3

(4)示例3:

计算每个年级的平均分。

  1. select *,sum(score)/count(class) from grade_score group by class;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjgzMDY5Nw_size_16_color_FFFFFF_t_70 4

  1. select *,avg(score) from grade_score group by class;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjgzMDY5Nw_size_16_color_FFFFFF_t_70 5

  1. select class,avg(score) from grade_score group by class;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjgzMDY5Nw_size_16_color_FFFFFF_t_70 6

(5)示例4:

汇总每个班级的人数。

  1. select class,count(class) from grade_score group by class;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjgzMDY5Nw_size_16_color_FFFFFF_t_70 7

(6)示例5:

将成绩大于80的同学进行分组统计平均分数。

【注意点:where条件过滤先发生,然后再进行分组统计】

  1. select class,avg(score) from grade_score where score>80 group by class;

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjgzMDY5Nw_size_16_color_FFFFFF_t_70 8

发表评论

表情:
评论列表 (有 0 条评论,77人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Oracle-查询-连接查询

    左外连接是以join左边作为主表,右连接以join右边做为主表 外连接查询出来的结果相当于两个部分,一个部分是交集部分(相当于利用等值活非等值连接查询出来的结果),