group by用法和SQL执行顺序详解

news2024/12/23 3:23:00

一、group by

1、作用

        数据分组 -> 组内数据处理(求组内的最大值、最小值、平均值等)

2、案例: Order Details(订单详情表)

表结构:每个Order,都对应着好几个不同的Product,每个产品的单价、数量、折扣都不同。

求:每个Order卖出的总价是多少?   总价=UnitPrice×Quantity×(1-Discount)

select OrderID, SUM(UnitPrice*Quantity*(1-Discount)) as OrderPrice
from Order Details
group by OrderID

3、聚合函数

【聚合函数】:对组内数据进行处理的函数 sum(), max(), min(), average()

聚合函数通常和 group by一起使用!!

二、having & where

筛选出其中一些组,这时候通常用到Having语句

e.g. 只希望查询订单编号是10248和10249这两个订单的总价

select OrderID, SUM(UnitPrice*Quantity*(1-Discount)) as OrderPrice
from Order Details
group by OrderID
having OrderID in (10248, 10249)

不可以用where!!!

当我们希望过滤表中数据时,

where不可以用于分组过后的数据,而having不可以用于分组之前的数据

聚合函数的作用是用来处理组内数据,所以where不可与聚合函数连用

三、SQL执行顺序

e.g. 找到订单价格大于500元的那些订单

select OrderID, SUM(UnitPrice*Quantity*(1-Discount)) as OrderPrice
from Order Details
group by OrderID
having SUM(UnitPrice*Quantity*(1-Discount)) > 500

select中已将订单总价起了别名OrderPrice, 为什么在having中不写OrderPrice而要把SUM函数重新再写一遍呢?——这就涉及到SQL执行顺序的知识点

step1. Order Detail这个表中的所有数据会通过from全部被取得

step2. 根据where条件,过滤出想要的数据

step3. 过滤好的数据 根据group by进行分组

step4. 被分好组的数据,会根据having条件筛选出满足条件的组

step5. select会把这些数据再汇总起来

 

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

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

相关文章

尚硅谷大数据项目《在线教育之实时数仓》笔记005

视频地址:尚硅谷大数据项目《在线教育之实时数仓》_哔哩哔哩_bilibili 目录 第9章 数仓开发之DWD层 P031 P032 P033 P034 P035 P036 P037 P038 P039 P040 第9章 数仓开发之DWD层 P031 DWD层设计要点: (1)DWD层的设计依…

Azure 机器学习 - 使用 Visual Studio Code训练图像分类 TensorFlow 模型

了解如何使用 TensorFlow 和 Azure 机器学习 Visual Studio Code 扩展训练图像分类模型来识别手写数字。 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员…

免费(daoban)gpt,同时去除广告

一. 内容简介 免费(daoban)gpt,同时去除广告,https://chat18.aichatos.xyz/,也可当gpt用,就是有点广告,大家也可以支持一下 二. 软件环境 2.1 Tampermonkey 三.主要流程 3.1 创建javascript脚本 点击添加新脚本 …

超详细!!!顺序表的实现

顺链表的实现 顺序表的概念及结构概念顺序表与数组的区别顺序表的结构 动态顺序表的实现头文件 "SeqList.h"定义结构体 SL 源文件顺列表的实现初始化顺列表 void SLInit(SL* ps)检查顺列表空间大小 void SLCheckCapacity(SL* ps)尾插数据 void SLPushBack(SL* ps,SLD…

java强转实验

不存在继承关系时,强转会出现编译时异常。即:无法将两个不同类型的对象做转换 当存在继承关系时,强转正常。备注:同名字段,类型一致,可以强转替代getset。同名字段,类型不一致,强转会…

网络安全之XSS漏洞

一. 引言 Cross-Site Scripting(跨站脚本攻击)简称XSS,是一种代码注入攻击。XSS 攻击通常指的是利用网页的漏洞,攻击者通过巧妙的方法注入 XSS 代码到网页,因为浏览器无法分辨哪些脚本是可信的,导致 XSS 脚…

matlab求解时变系统的Riccati矩阵微分方程

对于代数Riccati方程的求解网上能找到很多的资源,matlab也有成熟的函数,但是对于时变系统的Riccati矩阵微分方程,能找到的资料还比较少。 一、求解代数Riccati方程 可以在网上找到很多资料,如 https://blog.csdn.net/m0_622999…

python中有哪些你觉得超级牛的模块?

之前在做数据分析的时候,用过一个自动化生成数据探索报告的Python库:ydata_profiling 一般我们在做数据处理前会进行数据探索,包括看统计分布、可视化图表、数据质量情况等,这个过程会消耗很多时间,可能需要上百行代码…

Linux--线程--互斥锁

1.互斥量 a)互斥量(mutex)从本质上来说是一把锁,一般在主线程中定义一个互斥量,就是定义一把锁。然后根据我们的需求来对线程操作这把锁。 b)如果给所有的线程都加上锁了,线程们会去争取内存空…

2018年第三届 美亚杯电子取证 个人赛题解

1 Victor的笔记本电脑己成功取证并制作成法证映像档 (Forensic Image),下列哪个是其MD5哈希值? (2分) A. FC20782C21751AB76B2A93F3A17922D0 B. 5F1BDEB87EE9F710C90CFB3A0BB01616 C. A0BB016160CFB3A0BB0161661670CFB3 D. 917ED59083C8B35C54D3FCBFE4C4BB0B E. F…

当你在浏览器地址栏输入一个URL后,将会发生的事情?个人笔记

客户端 在浏览器输入 URL 回车之后发生了什么(超详细版) - 知乎 (zhihu.com) 大致流程是: URL 解析DNS 查询TCP 连接处理请求接受响应渲染页面 1.URL解析 地址解析: 首先判断你输入是否是一个合法的URL还是一个待搜索的关键…

上市公司-供应链效率数据集(2000-2022年)

参照张倩肖(2023)、Feng(2015)、张树山(2023)的做法,团队以库存周转天数来衡量供应链效率 库存周转天数有效克服了因企业保留安全库存而导致供应链效率较低的测算误差,体现供应链上…

回归预测 | Matlab实现POA-CNN-SVM鹈鹕算法优化卷积神经网络-支持向量机多变量回归预测

Matlab实现POA-CNN-SVM鹈鹕算法优化卷积神经网络-支持向量机多变量回归预测 目录 Matlab实现POA-CNN-SVM鹈鹕算法优化卷积神经网络-支持向量机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.POS-CNN-SVM鹈鹕算法优化卷积神经网络-支持向量机的多变量回归…

好用的CRM软件都有哪些功能?

好用的CRM软件不仅仅是将客户资料存档,更大的作用还在于充分发挥数据的价值提升客户管理效率。如果您了解过多款CRM软件就一定会发现它们的功能都不尽相同,但是好用的CRM工具离不开这些功能: 一、客户视图 客户视图主要由4类数据组成&#…

基于springboot实现游戏分享网站系统项目【项目源码+论文说明】

基于springboot实现游戏分享网站演示 摘要 网络的广泛应用给生活带来了十分的便利。所以把游戏分享管理与现在网络相结合,利用java技术建设游戏分享网站,实现游戏分享的信息化。则对于进一步提高游戏分享管理发展,丰富游戏分享管理经验能起到…

跨境商城源码价格

在当今数字商务的时代,跨境电商已经成为了越来越多企业的选择。然而,要建立一个高效、便捷、全球化的跨境商城并不是一件简单的事情。所幸,现在有一个开源的解决方案,给企业提供了无限的可能性。跨境商城源码价格合乎实际&#xf…

浅谈AcrelEMS-CB商业建筑能源管理系统解决方案-安科瑞 蒋静

1概述 AcrelEMS-CB商业建筑能源管理系统,集电力监控、电能质量监测与治理、电气安全预警、能耗分析、照明控制、新能源使用、能源收费以及设备运维等功能于一体,通过一套系统对商业建筑的能源进行统一监控、统一运维和调度,系统可以通过WEB和…

对比学习(contrastive Learning)

起源和定义 自监督学习又可以分为对比学习(contrastive learning)和生成学习(generative learning)两条主要的技术路线。 比学习的核心思想是将正样本和负样本在特征空间对比,从而学习样本的特征表示,使得样本与正样本的特征表示尽可能接近。正样本和负…

webase编译合约一直转圈卡住解决方案

问题:webase编译合约一直转圈卡住,等再久也没反应 解决方案: 进入webase-web目录,然后进入static\js目录,执行以下命令: curl -#L https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/download/solidity/wasm/v0.4.25.js -o v0.4.25.js curl -#L https://os…

Unity AssetBundle打包

1,AssetBundle的概念与作用 AssetBundle是一个存档文件,是Unity提供的一种用于存储资源的资源压缩包,可以包含模型、贴图、音频、预制体等。 Unity中的AssetBundle系统是对资源管理的一种扩展,通过将资源分布在不同的AB包中可以最…