OpenGauss数据库-C.数据排序与分组

目录

第1关:查询结果排序

任务描述

相关知识

对查询结果排序

指定排序方向

编程要求

测试说明

代码

第2关:分组统计

任务描述

相关知识

分组查询的单独使用

编程要求

测试说明

代码

第3关:GROUP BY 与 聚合函数

任务描述

相关知识

GROUP BY与聚合函数的使用

GROUP BY中SELECT指定的字段限制

编程要求

测试说明

代码

第4关: HAVING 与 ORDER BY

任务描述

相关知识

使用having子句进行分组筛选

Having与Where的区别

Group By 和 Order By

编程要求

测试说明

代码


第1关:查询结果排序

任务描述

本关任务:以成绩的降序显示学生成绩表中所有信息。

相关知识

为了完成本关任务,你需要掌握:

  1. 结果排序的关键字;
  2. 指定排序方向的关键字。
对查询结果排序

我们知道在OpenGauss中从数据表中读取数据都是使用SELECT语句。 如果我们需要对读取的语句进行排序,我们就可以使用Order By子句来设定你想要按照的字段进行排序并返回结果。

语法:

 
  1. SELECT 字段名 FROM 表名 ORDER BY 字段名 [ASC[DESC]];

你还可以根据自己的需求添加WHERELIKE子句来设置条件,再对结果过进行排序显示。

现有user表数据如下:

id name age
1 Tom 32
2 Nancy 18
3 Allen 24
4 Jason 23

我们需要查询表中信息,要求按照年龄的升序进行排序:

指定排序方向

从上面的查询语句中我们并未看到有任何表示排序方向的关键字,在默认情况下,它是按升序排列的。

  • ASC 升序关键字
  • DESC 降序关键字
编程要求

在右侧编辑器Begin-End处补充代码,查询学生成绩表中1班同学的所有信息并以成绩降序的方式显示结果。

我们已经为你提供了学生成绩表: tb_score表数据:

stu_id class_id name score
1 2 Jack 81
2 1 David 74
3 1 Mason 92
4 2 Ethan 89
5 1 Gina 65
测试说明

平台会对你编写的代码进行测试:

代码

--#请在此处添加实现代码
--########## Begin ##########
select * from tb_score where class_id=1 order by score DESC;
--########## 查询1班同学的所有信息并以成绩降序的方式显示结果 ##########


--########## End ##########

第2关:分组统计

任务描述

本关任务:对班级表中的班级名称进行分组查询。

相关知识

为了完成本关任务,你只需要掌握分组查询的单独使用。

但是在实际开发中一般不会用到,本章节只作为对分组查询的了解。往后继续学习,我们会介绍分组查询与其他查询一起结合使用。

分组查询的单独使用

分组查询的关键字是Group By,查询的是每个分组中 首次出现的一条记录

语法:

 
  1. SELECT 字段名 FROM 表名 GROUP BY 字段名;

例如: 现有user表数据:

id name sex
1 Tom
2 Nancy
3 Allen Null
4 Jason

我们对表中数据的性别进行分组查询:

可以看出,返回了

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小柒_02

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值