1.简单分组

GroupBy什么就Select什么

SELECT Name,Score
From StudentScore
GROUP BY Name,Score

2.聚合函数(MAX SUM AVG COUNT)

(1)计算

1.表的全部字段都可以用聚合函数,但是筛选聚合函数的结果要用Having关键字

2.聚合函数默认排除Null值

IDNameScore
1小苏100
2小苏92
3小苏80
4小军50
5小军NULL
6小军62
7小红98
8小红85
9小红90
SELECTName,SUM(Score) AS AllScore,AVG(Score) AS AverageScore,MAX(Score) AS MaxScore,MIN(Score) AS MinScore,Count(Score) As ExamCount,COUNT(CASE WHEN Score >= 60 THEN 1 END) AS PassedCount
FROM StudentScore
GROUP BY Name;

 查询结果(结论:聚合函数默认排除Null值):

(2)条数查询

1.现代数据库中,COUNT(1) 和 COUNT(*) 查询结果一致,效率一致

2.Count(字段) 查的是 该分组 中这个字段 ≠  NULL 的条数

3.Count(非分组字段) 中,重复的非 NULL 值都会被算进去,COUNT(DISTINCT 非分组字段) 则计算的是非NULL非重复的条数,简而言之,COUNT里面加DISTINCT,结果会更少

SELECTName  -- 分组字段1,Score -- 分组字段2,Count(Name) As NameCount -- 该分组中 Name ≠ NULL 的条数,Count(Score) As ScoreCount-- 该分组中 Score ≠ NULL 的条数,COUNT(1) -- 该分组中的条数(不看字段的值),COUNT(*) -- 该分组中的条数(不看字段的值)
FROM StudentScore
GROUP BY Name,Score;

【不分组全查】

SELECT COUNT(1) FROM StudentScore; --不分组,查全表条数

3.非聚合字段查询

【错误的写法】根据标题一,Group字段 和 Select字段 不一致会报错(但是我想显示出Score)

SELECT Name, Age, ScoreFROM PERSONGROUP BY Name, Age;

【方法一】取分组的MAX值

SELECT Name, Age, MAX(SCORE) AS ScoreFROM PERSONGROUP BY Name, Age;

【方法二】子查询(不推荐,不一定是唯一的)

SELECT Name,Age,(SELECT SCORE FROM SCORETABLE WHERE NAME=NAME) AS ScoreFROM PERSONGROUP BY Name,Age

4.聚合结果字段、别名字段查询

【引入】

SELECT ID,NAME,MAX(SCORE),(SELECT Code FROM TABLE2 WHERE ID = ID) AS Code
FROM TABLE
WHERE Code=500 AND SCORE > 60
GROUP BYID,NAME

这个SQL是不对的,不能对聚合函数和别名字段直接筛选,且ID=ID有歧义,解决方案有两个:


(1)SQL外包一层

SELECT * FROM (你的SQL) AS SubQuery WHERE 你的SQL的条件

SELECT *
FROM (SELECT ID,NAME,MAX(SCORE) AS MaxScore,(SELECT Code FROM TABLE2 WHERE ID = T.ID) AS Code --注意这里ID = T.ID 的 T 指代表名很重要FROM TABLE TGROUP BY ID, NAME
) AS SubQuery
WHERE Code = 500 AND MaxScore > 60;
--【注】包完之后一定要 'AS SubQuery',否则报错

(2)Having关键字

对于 聚合函数的结果 用 Having 筛选,对于别名字段在 子查询SQL 中过滤

SELECT ID,NAME,MAX(SCORE) AS MaxScore,(SELECT Code FROM TABLE2 WHERE ID = T.ID AND Code = 500) AS Code --注意这里ID = T.ID 的 T 指代表名很重要
FROM TABLE T
GROUP BY ID, NAME
HAVING MAX(SCORE) > 60;
--【注】HAVING SCORE > 60 是不对的。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux基本服务——web服务解析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 Web服务解析 虚拟Web主机 Web目录访问控制 Web服务解析 用途:基于 B/S 架构提供网页的服务端程序 应用层协议:HTTP(TCP 80…

深入理解缓存淘汰策略:LRU vs LFU 完全解析

深入理解缓存淘汰策略:LRU vs LFU 完全解析 文章目录深入理解缓存淘汰策略:LRU vs LFU 完全解析前言一、基础概念解析1.1 LRU(Least Recently Used)- 最近最少使用1.2 LFU(Least Frequently Used)- 最少使用…

【C语言】字符函数与字符串函数详解

文章目录一、字符分类函数二、字符转换函数三、strlen函数:计算字符串长度功能说明使用示例模拟实现四、strcpy函数:字符串拷贝功能说明模拟实现五、strcat函数:字符串追加功能说明模拟实现六、strcmp函数:字符串比较比较规则模拟…

uvicorn 启动重复加载 多次加载

目录 uvicorn 启动重复加载 多次加载 解决方法1: 解决方法2: uvicorn 启动重复加载 多次加载 fastapi_aa 是当前类 解决方法1: import uvicornfrom fastapi import FastAPIapp FastAPI()if __name__ "__main__":if sys.gett…

Bard AI本地部署教程:在自己的服务器上运行谷歌AI

Bard AI本地部署教程:在自己的服务器上运行谷歌AI 关键词:Bard AI、本地部署、服务器、谷歌AI、运行教程 摘要:本文旨在为大家详细介绍如何在自己的服务器上实现Bard AI的本地部署。我们会从背景知识讲起,逐步深入到核心概念、算法原理、操作步骤,还会提供项目实战案例和实…

应急响应处置案例(上)

本文目录 目录 本文目录 Web安全事件 概述 案例1 - webshell 背景 排查情况 天眼 服务器 案例2 - Struts2 排查情况 天眼 服务器 案例3 - Redis未授权 背景 排查情况 天眼 服务器 案例4 - EW内网穿透 背景 排查情况 天眼 服务器 案例5 - 一句话木马 背…

面试官问我:“为什么不能完全用对象替代指针?”我笑了:看看Google和Linux内核代码就知道了!

本篇摘要 本篇将以最通俗易懂的语言,形象的讲述为什么很多情境下,我们优先考虑的使用指针而不是对象本身,本篇将给出你答案! 一.从一个生活例子说起,形象秒懂 想象一下,你去图书馆借书,下面你…

CAMx大气污染模拟全流程:Linux编译/多重嵌套配置/SMOKE清单预处理/SA-DDM-PA工具应用与科研绘图结果可视化分析

CAMx模型是一个基于大气化学,针对臭氧、颗粒物和雾霾天气过程的大气污染物计算模型。【目标】:1、掌握CAMx模式的区域空气质量模拟案例配置技术方法2、掌握SMOKE模型的CAMx模式大气排放清单输入准备方法3、掌握CAMx模式污染来源解析工具(SA&a…

嵌入式学习笔记-MCU阶段-DAY10ESP8266模块

1.ESP8266概述 官方网址:ESP8266 Wi-Fi MCU I 乐鑫科技 (espressif.com.cn) ESP8266模块---wifi模块 产品特点: 2.ESP8266中的wifi: ESP8266EX ⽀持 TCP/IP 协议,完全遵循 802.11 b/g/n WLAN MAC 协议,⽀持分布式控制功能 (DC…

如何快速通过软件项目验收,第三方软件检测机构的重要性

在客户和开发团队之间,最后临门一脚的项目验收环节总容易出现各种问题,以至于时间无限拉长,久久不见结束,为此给大家准备了一份如何快速通过软件项目验收的内容来帮助大家结束持久战。 一、项目验收准备材料 (一&…

洛谷做题3:P5711 【深基3.例3】闰年判断

文章目录题目描述输入格式输出格式输入输出样例分析代码题目描述 输入一个年份,判断这一年是否是闰年,如果是输出 1,否则输出 0。 1582 年以来,闰年的定义: 普通闰年:公历年份是 4 的倍数,且不…

PMP证书可以挂靠吗?怎么挂靠?

哈喽学弟学妹们,作为过来人,今天想跟大家聊聊 PMP 证书挂靠这事儿 —— 可能不少准备考或者刚考完的同学都琢磨过,但学长得跟你们交个底:这事儿真不行,更别提啥挂靠费了。先说说 PMP 证书本身哈,它是美国 P…

91-基于Spark的空气质量数据分析可视化系统

基于Spark的空气质量数据分析可视化系统设计与实现 项目概述 本项目是一个基于Apache Spark的大数据分析和可视化系统,专门用于空气质量数据的采集、分析、预测和可视化展示。系统采用分布式计算架构,结合机器学习算法,实现了对全国12个主要…

leetcode 2419. 按位与最大的最长子数组 中等

给你一个长度为 n 的整数数组 nums 。考虑 nums 中进行 按位与(bitwise AND)运算得到的值 最大 的 非空 子数组。换句话说,令 k 是 nums 任意 子数组执行按位与运算所能得到的最大值。那么,只需要考虑那些执行一次按位与运算后等于…

Git 命令使用指南:从入门到进阶

目录1. Git 基本操作1.1 添加文件到暂存区1.2 提交更改到本地仓库1.3 查看工作区状态1.4 查看提交历史1.5 查看引用日志(包括已删除的记录)2. 版本回退与撤销2.1 版本回退2.2 查看已删除的提交记录3. 分支管理3.1 查看分支3.2 创建并切换到新分支3.3 合并…

SQL数据库连接Python实战:疫情数据指挥中心搭建指南

SQL数据库连接Python实战:疫情数据指挥中心搭建指南从WHO数据集到实时仪表盘,构建工业级疫情监控系统一、疫情数据指挥中心:全球健康危机的中枢神经​​疫情数据价值​​:全球每日新增病例:50万疫苗接种数据&#xff1…

参赛单位条件放宽!2025年“数据要素 ×”大赛福建分赛厦门赛区赛事有新调整

各位伙伴们 想抓住数据价值机遇 在行业赛场上崭露头角吗? 2025年“数据要素”大赛 福建分赛厦门赛区已启动 这份超全赛事解读 带你一站式摸清参赛关键! 01 参赛单位要求放宽 经省分赛组委会与国家赛事组委会沟通,不具有独立法人资格的…

BasicAuthenticationFilter处理 HTTP 基本认证(Basic Authentication)的核心过滤器详解

BasicAuthenticationFilter处理 HTTP 基本认证(Basic Authentication)的核心过滤器详解在 Spring Security 中,BasicAuthenticationFilter 是​​处理 HTTP 基本认证(Basic Authentication)的核心过滤器​​&#xff0…

Next.js 中使用 MongoDB 完整指南

1. 安装依赖npm install mongodb # 或者使用 mongoose(ODM) npm install mongoose2. 数据库连接配置使用原生 MongoDB 驱动创建 lib/mongodb.js 文件:import { MongoClient } from mongodbconst uri process.env.MONGODB_URI const options …

嵌入式系统教学范式演进:云端仿真平台如何重构温湿度监测实验教学

在嵌入式系统开发的教学中,环境温湿度监测实验是经典的入门项目。它涉及传感器原理、外设驱动、数据采集和通信协议等核心知识点。然而传统实验模式面临硬件成本高、调试周期长、设备易损坏等痛点。学生往往因接线错误或代码bug导致传感器或开发板烧毁,不…