现实中有很多这样的需求,对全班同学成绩进行排名,将所有的学生信息按照班级来分组,先将学生按班级分组再进行成绩排名等等。今天老韩就来介绍一下如何通过数据库的排序、分组、分组排序来实现这个需求(是排序,不是排名,排名讲到自定义变量时候会说)。

一、排序;

前面已经创建过学生表了,信息好像不太全,老韩要对学生表进行改造一下,老韩通过sql语句:alter table student add score int 在student表中加入一列,下一节老韩讲一下数据库、表、权限的管理,这个地方先知道就可以了。添加一列之后老韩对新增加的一列填入数据,结果如下;

student表

排序标准写法:select 列1,列2…… from 表名 order by 列名 asc 或者desc (asc写不写都可以,表示升序,默认就是升序,desc是降序,如要降序必须指定)

老韩想通过人员id进行升序排列,SQL语句为:select * from student order by id 执行结果如下:

二、分组;

分组要使用group by实现,标准写法为:select 列1,列2…… from 表名 group by 字段,表示以某个字段分组;

老韩想把所有的学生按照班级来分组,这个需求如何实现呢?SQL语句:select * from student order by classno,只能通过这个语句来实现了,因为单纯的分组是不可行的,不能写成select id,classno,username,age,classname,vxname,score from student group by id,classno,username,age,classname,vxname,score 这个无法实现分组,如下图,可知这样写是没有意义的。

三、分组函数;

上面我们讲了单纯的分组是没有意义的,group by 要和分组函数来结合使用,常用的分组函数有以下几种;

sum():求和;

count():行数;

avg():求平均;

abs():求绝对值(可不是汽车上的防抱死);

max():取(某列)最大值;

min()取(某列)最小值;

老韩来简单写俩:

1、求所有班级中最高分是多少?

SQL语句:select max(score),classno,classname from student group by classno

结果:

2、求所有班级的总分数是多少?

SQL语句:select sum(score),classno,classname from student group by classno

结果:

实际工作中这两种语句经常用到,如求一个部门一个月报销的总费用,如获取一个部门出勤率最高的同事作为优秀员工等等。今天的内容就到这里,希望可以给读者朋友一些帮助。如有问题需要咨询老韩,可根据文中图片内容找到老韩,老韩知无不答。没有点击关注的朋友可以点波关注,你们每一次的关注、转发、收藏都是老韩持续更新的动力,谢谢观看,我们下期再见。

mysql自定义函数分组_mysql中的排序和分组及分组函数相关推荐

  1. mysql自定义收藏分类_MYSQL中SHOW的使用整理收藏

    a. show tables或show tables from database_name; //显示当前数据库中所有表的名称 b. show databases; //显示mysql中所有数据库的名 ...

  2. mysql获取当月最后一天_mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天

    mysql获取当月最后一天_mysql中获取本月第一天.本月最后一天.上月第一天.上月最后一天等等 转自: https://blog.csdn.net/min996358312/article/det ...

  3. R语言使用str_replace函数和str_replace_all函数替换字符串中匹配到的模式:str_replace函数替换第一个匹配到的字符串、str_replace_all函数替换所有匹配到的

    R语言使用str_replace函数和str_replace_all函数替换字符串中匹配到的模式:str_replace函数替换第一个匹配到的字符串.str_replace_all函数替换所有匹配到的 ...

  4. php函数从数组中取出指定的数目,PHP数组函数

    1.array_rand()从数组中随机取出一个或多个元素(返回值是:随机元素的键)$arr=['js','css',25,'php',30]; printf(' %s ',print_r($arr, ...

  5. mysql教程排序_MySQL中的排序函数field()实例详解

    前言 我们在日常开发过程中,排序是经常用到的,有时候有这样的需求. 比如,需要在查询结果中根据某个字段的具体值来排序.如下面例子 上面是一张个人信息 表,假如我们想按照'seiki','iris',' ...

  6. mysql自动排序_MySQL中的排序

    文章正文: 在编写SQL 语句时常常会用到 order by 进行排序,那么排序过程是什么样的?为什么有些排序执行比较快,有些排序执行很慢?又该如何去优化? 索引排序 索引排序指的是在通过索引查询时就 ...

  7. mysql日期格式化季度_mysql中常用日期比较与计算函数

    MySql中时间比较的实现 unix_timestamp() unix_timestamp 函数可以接受一个参数,也可以不使用参数. 它的返回值是一个无符号的整数.不使用参数,它返回自1970年1月1 ...

  8. mysql sleep详解_MySQL中的sleep函数介绍

    MySQL数据库中有一个不太常用但便于进行某些调试的函数:sleep(),今天我们就来介绍一下这个函数的用法. 首先,看看官网对于函数的定义: SLEEP(duration) Sleeps (paus ...

  9. linux中修改mysql排序规则_MySQL中的排序规则

    MySQL中的排序规则.在新建MySQL数据库或表的时候经常会选择字符集和排序规则.数据库用的字符集大家都知道是怎么回事,那排序规则是什么呢? 排序规则:是指对指定字符集下不同字符的比较规则.其特征有 ...

最新文章

  1. redis分布式锁 在集群模式下如何实现_收藏慢慢看系列:简洁实用的Redis分布式锁用法...
  2. Python正在吞噬世界
  3. 一笔画问题 (DFS或并查集)
  4. linux boost 卸载,Ubuntu下boost库的编译安装步骤及卸载方法详解
  5. 可重复读:为什么你改了我看不到呢?
  6. 6.824 RPC lesson2 2020(一)
  7. iOS开发学习-nonatomic和atomic的区别
  8. 记录一个奇葩问题 宝塔 nginx: [warn] conflicting server
  9. 小白必看!JS中循环语句大集合
  10. “咕”了 73 天,何同学终于回归:最喜欢 3D 打印机,但不要买
  11. C语言实现两个数值互换
  12. arcmap创建空间索引_ArcGIS ArcMap编辑教程-创建新的点要素
  13. IIC通信协议总结(详细说明完整过程)
  14. 如何下载安装weka包
  15. 车载娱乐系统开发术语记录
  16. php将两张图片合并成一张,加上文字
  17. 韩咏梅:幸福只需要七分饱(转自新加坡联合早报)
  18. 6个在线正则表达式工具
  19. android调起应用商店某应用详情页
  20. 利用 POI 修改插入图表

热门文章

  1. dockerfile案列详解
  2. 盖茨写给中国人的明信片
  3. 叮咚音响登录显示未连接服务器,智能音箱连网失败怎么办?叮咚音箱连网失败解决方法...
  4. HTTP 头部信息和错误码汇总详细解释,必收藏!
  5. Excel by Example: A Microsoft Excel Cookbook for Electronics Engineers
  6. EdgeGallery开源一周年:在风起云涌的边缘计算时代独立潮头
  7. java string fileinputstream_Java FileInputStream(String name)构造函数示例
  8. XP虚拟机Oracle复制粘贴,Oracle VM VirtualBox我想问怎样在虚拟机上拖动复制或运行主机上的文件...
  9. 今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事11月4日
  10. 修改linux权限命令,Linux修改权限命令chmod用法示例