首页 > 数据库 >【Mysql】 查询数据排序以及聚合函数

【Mysql】 查询数据排序以及聚合函数

时间:2022-10-13 17:06:40浏览次数:49  
标签:聚合 students gender age Mysql group 排序 where select


# 排序
# order by 字段
# asc 从小到大排序,即升序
# desc从大到小排序,即降序

# 查询年龄在18到34岁之间的男性,按照年龄从小到大排序
select * from students where (age between 18 and 34) and gender=1 order by age;
select * from students where (age between 18 and 34) and gender=1 order by age asc;
# 查询年龄在18到34岁之间的男性,按照年龄从小到大排序
select * from students where (age between 18 and 34) and gender=1 order by age desc;
# 查询年龄在18到34岁之间的女性,身高从高到矮排序
select * from students where age between 18 and 34 and gender=2 order by height desc;

# order by 多个字段
# 查询年龄在18到34岁之间的女性,身高从高到矮排序,如果身高相同的情况下按照序列从小到大排序
select * from students where (age between 18 and 34) and gender=2 order by height desc,id desc;

# 聚合函数
# count
# 查询男性有多少人
select count(*) from students where gender=1;
select count(*) as 男性人数 from students where gender=1;

# 最大值
# max
# 查询最大年龄
select max(age) from students;

# 最大值
# min
# 查询最小年龄
select min(age) from students;

# 求和
# sum
# 查询最大年龄
select sum(age) from students;

# 求平均值
# avg
# 查询平均年龄
select avg(age) from students;

# 计算平均年龄
select sum(age)/count(*) from students;

# 四舍五入,保留两位小数
select round(sum(age)/count(*),2) from students;

# 计算男性的平均身高,保留两位小数
select round(sum(height)/count(*),2) from students where gender=1;


# 分组
# 按照性别分组,查询所有的性别
select gender from students group by gender;
select gender,count(*) from students group by gender;
# count(*) 是对前面的分组每组进行求数据

# group_concat
select gender,group_concat(name) from students group by gender;
select gender,group_concat(name,"_",age,"_",id) from students where gender=1 group by gender;

# having
# 查询平均年龄超过30岁的性别,以及姓名
select gender,group_concat(name),avg(age), from students group by gender having avg(age)>30;

# where 和 having 的区别 where在group by 前面 ,having 在group by 后面 ,where 是在对原表进行判断,having是在对判断分组之后的表格

select gender,group_concat(name) from stundents group by gender having count(*)>2;

 

标签:聚合,students,gender,age,Mysql,group,排序,where,select
From: https://blog.51cto.com/u_15828115/5754008

相关文章

  • 【Mysql】 数据库高级查询
     #查询#查询所有字段#select*from表名select*fromstudents;select*fromclass;#查询指定字段#select列1,列2,.....from表名selectname,agefromstudents......
  • 【Mysql】mysql 数据库的增删改查
    #进入数据库mysql-u[user]-pmysql-u[user]-p[passwd]#举例mysql-uroot-pmysql-uroot-pmysql#退出数据库exitquit#ctrl+d也可以退出数据库#显示当前数据库的......
  • mysql数据同步
    Navicat同步数据库中数据kettle实现mysql单表增量同步使用Kettle同步mysql数据,增量同步教程执行步骤Navicat定时同步数据库使用Kettle进行数据同步(增量)KETTLE安装及连接M......
  • MySQL基础架构及一条SQL查询语句是如何执行的
    MySQL基础架构及一条SQL查询语句是如何执行的该文摘抄自林晓斌老师的文章MySQL的基本架构示意图,从中你可以清楚地看到SQL语句在MySQL的各个功能模块中的执行过程......
  • mysql开启访问数据权限
    赋予任何主机访问数据的权限GRANTALLPRIVILEGESON*.*TO'root'@'%'WITHGRANTOPTION修改生效FLUSHPRIVILEGES为了测试部署程序的保存库问题......
  • MySQL数据库中事务默认自动提交
    事务提交的两种方式自动提交mysql就是自动提交的一条DML(增删改) 语句会自动提交一次事务手动提交Oracle 数据库默认是手......
  • MySQL主从搭建及主从不同步问题处理
    1、使用主从同步的好处:1.通过增加从服务器来提高数据库的性能,在主服务器上执行写入和更新,在从服务器上向外提供读功能,可以动态地调整从服务器的数量,从而调整整个数据库的......
  • 创建MySQL触发器,对当前表某个字段值,进行修改
    需求:后台处理完数据,进行插入数据库时,某个字段,存的数值要保留两位小数(没改之前小数可能7,8位)在不改变程序的前提下,需要把小数进行四舍五入。思路:在Mysql创建一个触发器,......
  • MySQL开发环境工具:​​​​MAMP Pro
    MAMPPro6forMac是一款用于Web开发的本地服务器环境的工具,在mac上轻松安装和管理开发环境,有Apache,Nginx,Redis,Memcached,Python,Perl,Ruby,PHP和MySQL,可选高速缓存:APC,eAccele......
  • MySql多字段排序
    我们平常工作中需求可能会要求表格某些数据会挨一起的,这样比较好比较的,这个就涉及到了MySQL多列排序问题ORDERBYlcl.id,ldt.id,lpe.weight_max上面需要排序的列越往前......