SQL查询语言(3) 聚集查询和窗口函数的概念

news2025/1/11 11:05:28

查询结果排序

排序

规则如下:

1.语句:

SELECT A1,A2....
FROM 表名
WHERE 选择条件
order by 属性1(ASC升序),属性3(DESC降序);

如果没有说明默认是升序排列:

2.对于空值的处理 如果是升序排列 NULL放在最后一行,如果是降序则放在第一行

                                                     上图为 按升序排列查询的结果

3.Order by 通常 只对最终结果排序 不对中间的结果排序 这个和我们之后要讲到的嵌套查询有关,

不用管中间的嵌套是什么 order by最后只是展现在我们面前的样子。

限制查询结果的数量

Limit语句 

举一个简单的例子:查询选修某一课程的最高分的前两名
思路: 1. 将成绩排序 2.限制查询结果的数量
SELECT Sno,Grade FROM SC where Cno = '3006' ORDER BY GRADE DESC LIMIT2;

 Offset语句 可以搭配limit一起使用

查询成绩在第二名和第三名之间的学生成绩

                                 从偏移开始后边的两条元组直接输出出来

聚集

按照几个属性作为分组属性分组 元组分完组之后可以在上面做聚集,求最大值最小值 平均值

常见的聚集函数

 通过实验验证发现count不计算空值

 查询最高分和最低分的几种方法

这个例子比较特殊因为grade 里面包含了空值
select max(grade) from sc;//使用聚集函数
select grade from sc where grade is not null order by grade desc limit 1;//思考为啥需要加not null 查看上方的order by查询

查询最低分
select min(grade) from sc;
select grade from sc oder by grade limit 1;//不需要加not null 因为null在最后一行

 count(*)和count(属性)的区别count(*)连空的都包括  count(属性)只计算非空值

count可以和distinct一起搭配使用 查询不重的分数

 聚集函数不能出现在where子句中:

分组查询GROUP BY

语法:
GROUP BY A1,A2;

 案例:

统计选课人数和平均成绩。

 还是一样空值不参与运算。

分组查询之后筛选 HAVING 语句

比如报名参加运动会 将每个学院参加的人数做一个统计 但是小于三十人的视为无效

GROUP BY A1,A2 HAVING 条件;

没加having之前 

 加了having 之后

having 相当于一个选择条件选择条件作用在分组上。

分组查询的执行过程

 窗口函数

用法举例

 和GROUP BY的区别就是既能进行分组又能进行保留原始数据 不至于把他"拍扁";

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/558574.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis动态SQL,基本语法加实战,一篇搞懂

问题: 有的时候我们需要实现批量删除:delete from t_car where id in(1,2,3,4,5,6,…这⾥的值是动态的,根据⽤户选择的 id不同,值是不同的); 多条件查询:有时我们需要根据多个不同地条件来进行查询,比如:se…

数据集成平台之kettle优缺点分析

数据集成平台前言 数据在业务中发挥着重要的作用,但并非所有数据都具有相同的价值和影响力。事实上,大部分数据业务的核心价值主要来自其中的少部分关键数据。这些关键数据可能包含着重要的业务指标、关键客户信息、市场趋势数据等,它们直接…

【机器学习】之Anaconda中使用的命令

操作之前,点击上图入口,进入Prompt。 //示例是在base环境下,cls清屏 (base) C:\Users\bubusa>cls1、base环境下的操作 //(1)列出所有虚拟环境 (base) C:\Users\bubusa>conda env list # conda environments: #…

Radeon Vii 系统分析 001记——工具

0. 简介 为了对 vega 7nm 有更感性的编程使用体验,故对 vega 7nm做各种测试; 工具: CLRadeonExtender ubuntu ROCm 资料: (1) 一张安装了 Radeon Vii vega 7nm 的台式机,win10 或 ubunt…

Mit6.006-lecture08-BinaryHeaps

一、优先队列接口 记录一些项目,快速地访问/移除最重要的 例:有限带宽的路由器,必须优先某些信息 例:操作系统内核中的进程调度 例:离散事件模拟(下一件事何时发生) 例:图算法&am…

js程序运行时在本机与外部app交互

js程序运行时在本机与外部app交互 目录 js程序运行时在本机与外部app交互 一、序言 1.1、问题 1.2、简要回答 二、原理 2.1、插件/web扩展/应用配置/权限 2.2、获取权限-原生应用交换信息的权限nativeMessaging 2.2.1、runtime(运行时的API) 2.3、连接本地应用程序的…

《微服务实战》 第十四章 RabbitMQ应用

前言 一般MQ用于系统解耦、削峰使用,常见于微服务、业务活动等场景。 1、RabbitMQ概念概念 RabbitMQ整体上是一个生产者与消费者模型,主要负责接收、存储和转发消息。 1.1、生产者和消费者 Producer:生产者,就是投递消息的一方。消息一般可以包含2个部分:消息体和标签…

Vue3+i18n多语言动态国际化设置步骤

1、技术介绍 i18n:Vue.js 的国际化插件。它可以轻松地将一些本地化功能集成到你的 Vue.js 应用程序中 i18n的官网地址安装 | Vue I18n (kazupon.github.io) 2、插件安装 npm install vue-i18n9 --save需要注意的是vue3最好使用9.x以上的版本! 3、创建i…

夏日挂脖风扇方案开发设计

夏日挂脖风扇是一种便携式的风扇设备,通过挂在用户的脖子上,为用户提供清凉的风力降温。在夏季高温天气中,挂脖风扇成为了人们追逐的热门产品之一。为了满足市场需求,夏日挂脖风扇的方案开发设计需要考虑多个方面,包括…

Class 09 - Data Frame和查看数据

Class 09 - Data Frame和查看数据 DataFrametibbleshead()str()colnames()mutate()创建 Dataframe DataFrame 在我们开始做数据清洗或者检查数据是否存在偏差之前,我们需要先将我们的数据转换成合适的格式方便我们做后续的处理。 这就要说到DataFrame了。因为他很…

CSDN programmer_ada what the hell

CSDN programmer_ada 1、今天博客收到了1条评论,莫名其妙。2、查看这个账户 原来是CSDN官方机器人3、貌似领了红包 就会自动关注发红包的账户 1、今天博客收到了1条评论,莫名其妙。 一定要坚持创作更多高质量博客哦, 小小红包, 以资鼓励, 更多创作活动请…

【ClickHouse】什么是ClickHouse?CK入门

文章目录 一、ClickHouse入门1、列式存储2、DBMS的功能3、多样化引擎4、高吞吐写入能力5、数据分区与线程级并行6、性能对比7、官网 二、ClickHouse安装1、准备工作2、单机安装 三、ClickHouse的数据类型1、整型2、浮点型3、布尔型4、Decimal型6、枚举类型7、时间类型8、数组 一…

好程序员:女生学Java好学吗?女生学Java有什么优势?

小源经常会听到女生咨询适不适合学习Java开发的问题,提出这种问题归根结底还是缺乏性别自信,默认女性比男性弱。实际上这个问题并不存在,男女平等才是正确的思维,当然,也为了解开女生们的心结,这里好程序员…

开发微信公众号本地调试+-+cpolar内网穿透

文章目录 前言1. 配置本地服务器2. 内网穿透2.1 下载安装cpolar内网穿透2.2 创建隧道 3. 测试公网访问4. 固定域名4.1 保留一个二级子域名4.2 配置二级子域名 5. 使用固定二级子域名进行微信开发 转载自cpolar内网穿透的文章:微信公众号开发:对接本地开发…

股票?看我用python采集数据制作成交量图表

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 开发环境 & 第三方模块: 解释器版本: python 3.8 代码编辑器: pycharm 2021.2 requests: pip install requests 爬虫 pyecharts: pip install pyecharts 数据分析 pandas: pip install pandas 数据分析 基本流…

C++常用的支持中文的GUI库Qt 6之一:下载、安装与简单使用

C常用的支持中文的GUI库Qt 6之一:下载、安装与简单使用 因为Qt发展变化较快,网上许多介绍Qt的下载、安装与使用已过时,初学者常因行不通而受挫,故此发布本文,以Qt 6.2.4开源版在Windows 10安装与使用为例介绍。 C好用…

Kubernetes 之7大CNI 网络插件用法和对比

Kubernetes 它需要网络插件来提供集群内部和集群外部的网络通信。以下是一些常用的 k8s 网络插件: Flannel:Flannel 是最常用的 k8s 网络插件之一,它使用了虚拟网络技术来实现容器之间的通信,支持多种网络后端,如 VXLA…

SpringSecurity权限管理基本概念和整体架构介绍

文章目录 一、权限管理1、认证2、授权3、对权限控制,现有的解决方案 二、SpringSecurity简介1、官方定义2、历史 三、整体架构1、认证AuthenticationManagerAuthenticationSecurityContextHolder 2、授权AccessDecisionManagerAccessDecisionVoterConfigAttribute 一…

SQL注入:sqli第一关详细讲解

一、实验环境: Apache2.4.39 FTP0.9.60 MySQL5.7.26 PHP 5.3.29(注意PHP的版本不应过高,否则会导致sqli安装失败) sqli 二、实验步骤 第一步:在id1后加入一个闭合符号,如果报错,再在后面加上 -- qwe将后面注释掉…

vivado中的FPGA时钟管理单元PLL学习记录

vivado中的FPGA时钟管理单元PLL学习记录 CMT简介一、PLL IP的使用1、ip调用 2、生成的频率限制二、PLL实现原理 三、使用过程中的问题程序注意事项 CMT简介 FPGA中时钟管理模块(CMT)包括PLL和MMCM,用于将时钟倍频(比如输入时钟25M&#xff0…