group by的基本用法

2023-11-11

        在平常的工作中,我们经常需要对数据进行分组,那么group by该如何使用呢?都有哪些使用场景呢?

 语法:含有聚合函数的过滤条件需放在having后

1):select 字段  from  表名  where 条件 group  by 字段

2):select 字段  from  表名  (where 条件) group  by 字段  having  条件

1:使用group by统计男生、女生人数:

select sex,count(sex) from student group by sex;

2:使用case when + group by 进行行转列:

select st.name,st.student_no,
       sum(case when sc.course = '语文' then sc.score end) as '语文',
	   sum(case when sc.course = '数学' then sc.score end) as '数学',
	   sum(case when sc.course = '英语' then sc.score end) as '英语'
from score sc left join student st on sc.student_no = st.student_no GROUP BY 
sc.student_no,st.name

 3:统计范围数据:查询各科成绩一般、良好和优秀的人数:

select course,
sum(case when score > 60 and score <=70 then 1 else 0 end) '一般',
sum(case when score > 70 and score <=80 then 1 else 0 end) '良好',
sum(case when score > 80 then 1 else 0 end) '优秀'
from score GROUP BY course;

 4:常用的聚合函数:min(),max(),avg(),sum()等:

1):查询每门课程的最高分:max() 

select course,max(score) from score GROUP BY course;

2):查询每门课程的最低分:min()

select course,min(score) from score GROUP BY course;

3):查询每门课程的平均分:

select course,avg(score) from score GROUP BY course;

 

 4):查询平均分大于85的课程:

select course from score GROUP BY course having avg(score) > 85;

以上为group by的基本使用场景,不断的学习才会遇见更好的自己!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

group by的基本用法 的相关文章

  • 会话 bean 中的 EntityManager 异常处理

    我有一个托管无状态会话 bean 其中注入了 EntityManager em 我想做的是拥有一个具有唯一列的数据库表 然后我运行一些尝试插入实体的算法 但是 如果实体存在 它将更新它或跳过它 我想要这样的东西 try em persist
  • MS-Access 查询中的语法错误(缺少运算符)

    以下查询给了我 missing operator 语法错误 所需的输出是表中数据的组合 dbo tbl 和意见 vw 我用过的所有钥匙都存在 有任何想法吗 SELECT dbo tbl BOD fpartno AS PartNumber d
  • sql查询连接两个服务器中不同数据库的两个表

    我在 ServerS 上的数据库中有两个表 tableA 在 ServerB 上的数据库中有两个表 我只想根据这些表的公共字段名对这些表执行 fullouter join 在 SQL Server 中 您可以创建一个链接服务器 在 Mana
  • html 下钻下拉所选值未插入 MYSQL

    我有两个下拉列表 首先从数据库下拉填充 根据第一个下拉列表的选定值从数据库填充第二个下拉列表 document ready function c change function var c1 c selected text if c1 aj
  • MySQL JSON 存储与两个表

    与使用单独的元表相比 使用 JSON 在表中存储数据有什么好处吗 这是原始架构 Users Table UserId Username Etc 5 John Avatar Table Id UserId ImageName ImageTyp
  • SQL Server、ISABOUT、加权项

    我试图弄清楚加权项在 SQL SERVER 的 ISABOUT 查询中是如何工作的 这是我目前所在的位置 每个查询返回以下行 查询 1 权重 1 初始排名 SELECT FROM CONTAINSTABLE documentParts ti
  • 选择早于的时间戳

    我如何从数据库中选择超过 12 小时的项目 我使用时间戳列来存储时间 但我认为我不需要年 月 日 只需要小时 我有类似的东西 但它不起作用 没有错误 只是从表中返回所有数据 sql SELECT FROM Y WHERE X and tim
  • 是否可以从数据库转储生成 knex 种子文件?

    就我而言 我使用的是 mysql 但是 我正在寻找一种通用解决方案 用于从当前运行的数据库或数据库转储生成 knex 种子文件 我可以就像是 https github com tgriesser knex issues 944 issuec
  • 如何将 T-SQL 中的结果连接到列中?

    我正在处理一个查询 它应该给我这样的结果 Name Surname Language Date James Hetfield en gb fr 2011 01 01 Lars Ulrich gb fr ca 2011 01 01 但我的选择
  • 导致聚集索引扫描的日期参数

    我有以下查询 DECLARE StartDate DATE 2017 09 22 DECLARE EndDate DATE 2017 09 23 SELECT a col1 a col2 b col1 b col2 b col3 a col
  • 如何杀死Mysql“show processlist”中的所有进程?

    因为我在那里看到了很多进程 并且 时间 列显示了所有进程的大值 大规模屠杀操作节省时间 在 MySql 本身中执行此操作 运行这些命令 mysql gt select concat KILL id from information sche
  • 关系数据库和图数据库的比较

    有人可以向我解释一下 MySQL 等关系数据库与 Neo4j 等图形数据库相比的优缺点吗 在 SQL 中 您有多个表 它们之间有不同的 id 链接 然后你必须加入来连接表 从新手的角度来看 为什么要将数据库设计为需要联接 而不是像图形数据库
  • MySQL按总和连接表问题

    我在连接表时遇到问题 以下是示例表 表A 30行 ID Name Description 1 Type Unicode Art 2 Header Spreadsheet 3 Auto Align Off 表B 100行 ID Name De
  • 如何通过逗号分隔将 2 行合并为一行?

    我需要将这些单独的行合并到一列 我现在如何通过逗号分隔合并列 CID Flag Value 1 F 10 1 N 20 2 F 12 2 N 23 2 F 14 3 N 21 3 N
  • WordPress 访问

    我正在与朋友一起开发一个网站 使用Wordpress我们正在尝试从我的计算机和他的计算机访问同一个 WordPress 帐户 以便我们可以一起在网站上工作 我们尝试将彼此添加为管理员 但只能从创建管理员的计算机上访问新帐户 有谁知道如何做到
  • 带参数的 MySQL 脚本

    我想创建一个部署脚本 以某种方式模拟 Oracle 部署脚本 其中使用 param 您可以使用之前声明的参数 我需要为不同数据库上的不同用户自动调用此脚本 例如我的脚本应该是 USE param DROP TABLE IF EXISTS T
  • 为通用字符选择表排序规则

    我正在开发一个需要存储通用字符的后端 我选择了utf8mb4用于此目的的表编码 我还必须选择表格排序规则 最直接的选择是选择utf8mb4 general ci表整理 除了一般的排序规则之外 还有大约20种其他排序规则可供选择 更具体的排序
  • 当列的数据类型为 int 时,如何用字符串替换 null

    我有一个包含 3 列的表和如下示例数据 所有列都是数据类型int 我有这个查询 select foodid dayid from Schedule 我要更换dayid用字符串 ifdayid null 为此我尝试了这个查询 select f
  • 产品和变体 - 设计数据库的最佳方法

    描述 商店可以有产品 鞋子 T 恤等 每个产品可以有许多变体 每个变体可以有不同的价格和库存 例如T 恤有不同的颜色和尺寸 颜色 蓝色 尺寸 L 价格 10 美元 库存 5 颜色 蓝色 尺寸 XL 价格 10 美元 库存 10 颜色 白色
  • 查询中的存储过程

    有一个程序获取文件列表 顾名思义 返回一个文件列表以及更多选项 那么是否可以在查询选择中使用此过程 像这样的东西 select Field1 from Image where Field2 IN call GetFileList 你应该把它

随机推荐

  • 分分钟提高效率的18个神仙网站,你都用过几个?

    1 ipaddress ip查询工具 https www ipaddress com 不知道本机IP 一进入网址就可以查到 还能查询到ip的详情信息 追踪域名 端口信息 2 json 在线解析工具 https www json cn 开发时
  • 《C++ Primer》学习笔记(十三):拷贝控制

    C Primer 学习笔记 十三 拷贝控制 拷贝 赋值与销毁 拷贝构造函数 拷贝赋值运算符 析构函数 三 五法则 使用 default 阻止拷贝 拷贝控制和资源管理 行为像值的类 定义行为像指针的类 交换操作 对象移动 右值引用 移动构造函
  • 3月10日--3月16日(共17小时,剩4543小时)

    3月10日 共3小时 上午3小时DX11 下午单位有事 3月11日 共3小时 早上5 00起床 OSGEARTH视频教程第十讲 单位有事 3月12日 共5小时 3月13日3小时 3月14日 3小时 周末0小时 共17小时
  • 【问题】multiple definition of `_start'

    使用GCC编译器的时候 程序能够编译通过 但是结果却有问题 我查找了好多地方 还是不知道问题出在什么地方 后来才发现是因为一个变量未初始化造成的 感觉以前在使用VS的时候很少会在这种问题上耽误时间 于是想到很少用到的 Wall 参数 我对一
  • 最新Dubbo-admin+Zookeeper搭建遇到的一些问题

    Zookeeper搭建 下载zookeeper压缩包并解压 下载地址 http www apache org dyn closer cgi zookeeper 进入conf目录下将 zoo sample cfg 改名为 zoo cfg 进入
  • 免费AI计算资源

    推荐几个提供免费GPU计算资源的平台 助力你的AI之路 1 Kaggle Kernel 2 百度AI 3 Google Colaboratory 原文链接 https blog csdn net mrjkzhangma article de
  • Docker 安装与Tomcat部署

    Docker 安装与Tomcat部署 虚拟机 VMware Linux环境 CentOS 7 镜像 images 容器 contenor 一 VMware安装Linux镜像 1 Linux配置固定IP Linux虚拟机配置静态IP 二 Fi
  • CodeSmith 使用教程(17) Merge策略

    前面介绍了CodeSmith使用的基本用法 通过代码模板来生成代码 但如果你修改了自动生成的代码 再次使用代码模板生成代码后 你修改的代码也就丢失了 CodeSmith 支持多种 合并 Merge 来解决这个问题 以保留你自己修该过的部分
  • GeoServer 安装教程

    准备内容 安装环境 win10 64位专业版 安装文件 geoserver 2 15 2 安装步骤 安装JDK 1 安装GeoServer是基于Java的环境 所以需要先装Jdk环境 2 前往官网下载Java SE http www ora
  • 动态住宅代理VS静态住宅代理,怎么选择?

    现在 越来越多的海外代理服务商均支持动态住宅IP与静态住宅IP 很多小伙伴就疑惑 这二者有什么区别呢 哪个更好 其实 没有哪个更好 只有哪一个更合适您的业务 无论动态住宅IP还是静态住宅IP都来自真实的住宅IP地址 都可以提供IP隐匿作用
  • MySQL下载及使用navicat连接mysql数据库(含下载地址、超具体细节、推荐数据库教程)

    目录 下载地址 安装流程 第一步 开始安装 第二步 类型选择 第三步 developer default 第四步 execute 第五步 服务器配置窗口 第六步 网络类型配置窗口 第七步 第八步 服务器密码设置窗口 第九步 服务器名称窗口
  • 60 openEuler 22.03-LTS 搭建MySQL数据库服务器-安装、运行和卸载

    文章目录 60 openEuler 22 03 LTS 搭建MySQL数据库服务器 安装 运行和卸载 60 1 安装 60 2 运行 60 3 卸载 60 openEuler 22 03 LTS 搭建MySQL数据库服务器 安装 运行和卸载
  • 深入理解C++中的异常处理机制

    异常处理 增强错误恢复能力是提高代码健壮性的最有力的途径之一 C语言中采用的错误处理方法被认为是紧耦合的 函数的使用者必须在非常靠近函数调用的地方编 写错误处理代码 这样会使得其变得笨拙和难以使用 C 中引入了异常处理机制 这是C 的主要特
  • maven(12),排除冲突JAR包

    JAR包冲突
  • fedora网络配置

    wifi 博通网卡转自 http tieba baidu com p 5066385635 如果你的机子无线网卡正常 有wifi选项 那就不用安装了 如果你的机子没有wifi选项 请确认一下你的无线网卡是不是博通的 一般为BCMXXXX之类
  • 牛客网--程序员代码面试指南--矩阵的最小路径和

    题目描述 给定一个 n m 的矩阵 a 从左上角开始每次只能向右或者向下走 最后到达右下角的位置 路径上所有的数字累加起来就是路径和 输出所有的路径中最小的路径和 输入描述 第一行输入两个整数 n 和 m 表示矩阵的大小 接下来 n 行每行
  • vue使用Element UI时,el-table表格整行操作单选禁选并隐藏全选框

    需求场景 需求 表格复选修改为单选 只可选择一个 不满足条件的不可勾选 可进行整行操作 vue中的el table布局 注意使用的方法
  • 【registry】Reader schema missing default value for field: age

    1 背景 hortonworks registry 在页面上想在原有数据的基础上添加一个新的字段 type record namespace com orendainx trucking name TruckData
  • now() 和SYSDATE()的区别

    mysql中日期函数还是比较常用的 主要有NOW 和SYSDATE 两种 虽然都表示当前时间 但使用上有一点点区别 NOW 取的是语句开始执行的时间 SYSDATE 取的是动态的实时时间 因为NOW 取自mysql的一个变量 TIMESTA
  • group by的基本用法

    在平常的工作中 我们经常需要对数据进行分组 那么group by该如何使用呢 都有哪些使用场景呢 语法 含有聚合函数的过滤条件需放在having后 1 select 字段 from 表名 where 条件 group by 字段 2 sel