Mysql语法之DQL查询的多行函数

Mysql的多行函数和分组

目录

多行函数


概念

不管函数处理多少条,只返回一条记录,数据需要进行分组,如果数据可以分为多个组,那么返回的数据条数和组数相同。

常用的多行函数

  • max 最大值
  • min 最小值
  • avg 平均值
  • sum 求和
  • count 求总数

数据分组


概念

按照某一个条件进行分组,每一组返回对应的结果

语法

  • group by
    可以对指定的列进行分组,列尽量有相同的
  • having
    可以对分组之后的数据进行过滤,所以能出现在having中的比较项一定是被分组的列或者是组函数

where和having的区别

  • where称之为行级过滤,处理的是表中每一行数据的过滤
  • having称之为组级过滤,处理的是分组之后的每一组数据

能使用where的,尽量不要使用having

语句关键字及执行顺序


语句关键字

  • select: 我们要显示那些列的数据

  • from: 从那张表中获取数据

  • where: 从表中获取数据的时候进行行级的数据过滤

  • group by: 对数据进行分组处理,一组获取对应的结果

  • having: 组级过滤,组级过滤的数据必须是分组条件或者是组函数

  • order by: 排序 asc desc

  • limit:数据数限制

执行顺序

from --> where -->group by -->select -->having-->order by-->limit

实际操作


基本语句格式和多行操作

语句格式:

  • select 列名 from 表名 group by 列名;

代码展示:

sql 复制代码
select * from sc;
select count(*)from sc;
select sno,max(score),min(score),avg(score),sum(score),count(*) from sc group by sno;

运行结果:


筛选语句格式

  • select 列名 from 表名 group by 列名 having 条件 /(order by 列名 asc|desc /limit n)
  • select 列名 from 表名 where 条件 group by 列名 /(order by 列名 asc|desc /limit n)

代码展示:

sql 复制代码
select sno,score from sc;
select sno,avg(score) from sc group by sno;
select sno,avg(score) from sc group by sno having avg(score) > 80; 
select sno,avg(score) from sc where score >80 group by sno order by avg(score) asc;
select sno,avg(score) from sc where score >80 group by sno limit 3;
select sno,avg(score) from sc group by sno having avg(score) > 70 order by avg(score) desc;

运行结果:






相关推荐
不爱说话郭德纲10 分钟前
基于uniapp使用websocket进行实时通讯
开发语言·前端·javascript·vue.js
咖猫41 分钟前
Guava 库中的 `Multimap` 是一个允许一个键对应多个值的集合 Guava `Multimap` 的基本代码示例:
开发语言·python·guava
咖猫1 小时前
Google guava 最佳实践 学习指南之08 `BiMap`(双向映射)
java·开发语言·guava
大乔乔布斯1 小时前
MySQL批量删除字段跑路?
数据库·sql·mysql
TDengine (老段)1 小时前
TDengine 新功能 通过 UID 删除不可见表
大数据·数据库·物联网·时序数据库·tdengine
娶个名字趴1 小时前
Redis(2)常用命令
java·数据库·redis·缓存
滿1 小时前
处理错误的两种方式:try...catch 与 then...catch
java·开发语言
编码浪子1 小时前
构建一个rust生产应用读书笔记7-确认邮件1
数据库·rust·php
SomeB1oody1 小时前
【Rust自学】3.6. 控制流:循环
开发语言·后端·rust
Ttang231 小时前
Tomcat原理(4)——尝试手动Servlet的实现
java·开发语言·servlet·java-ee·tomcat·intellij-idea