mysql 查询语句group by用法(MySQL group by和order by如何一起使用)
类别:数据库 浏览量:2028
时间:2022-03-31 16:20:04 mysql 查询语句group by用法
MySQL group by和order by如何一起使用假设有一个表:reward(奖励表),表结构如下:
|
create table test.reward ( id int (11) not null auto_increment, uid int (11) not null comment '用户uid' , money decimal (10, 2) not null comment '奖励金额' , datatime datetime not null comment '时间' , primary key (id) ) engine = innodb auto_increment = 1 character set utf8 collate utf8_general_ci comment = '奖励表' ; |
表中数据如下:
现在需要查询每个人领取的最高奖励并且从大到小排序:
如果直接查询:
select id, uid, money, datatime from reward group by uid order by money desc;
得到如下结果:
没有得到我们需要的结果,这是因为group by 和 order by 一起使用时,会先使用group by 分组,并取出分组后的第一条数据,所以后面的order by 排序时根据取出来的第一条数据来排序的,但是第一条数据不一定是分组里面的最大数据。
方法一:
既然这样我们可以先排序,在分组,使用子查询。
|
select r.id, r.uid, r.money, r.datatime from ( select id, uid, money, datatime from reward order by money desc ) r group by r.uid order by r.money desc ; |
方法二:
如果不需要取得整条记录,则可以使用 max() min()
select id, uid, money, datatime, max(money) from reward group by uid order by max(money) desc;
得到结果:
可能你已经发现了,使用max()取得的记录,money字段和max(money)字段不一致,这是因为这里只是取出了该uid的最大值,但是该最大值对应的整条记录没有取出来。
如果需要取得整条记录,则不能使用这种方法,可以使用子查询。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://www.jianshu.com/p/c3db3151c861
您可能感兴趣
- mysql建表时指定聚簇索引(一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的)
- 终于有人将mysql 索引讲清楚了(MySQL 索引的一些细节分享)
- mysqlcount使用方法(详解 MySQL中count函数的正确使用方法)
- 安装mysql中要注意什么问题(安装Mysql时可能会遇到的一些疑难杂症)
- mysqlsql语句的优化(MySQL优化之如何写出高质量sql语句)
- 所有聚合函数mysql教程(Mysql 聚合函数嵌套使用操作)
- mysql怎么建立主键外键(mysql 实现设置多个主键的操作)
- navicat连接mysql报1045(解决Navicat for MySQL 连接 MySQL 报2005错误的问题)
- 分享mysql设计规范(MySQL 可扩展设计的基本原则)
- 如何清除mysql的binlog
- mysql innodb存储原理(mysql innodb的重要组件汇总)
- mysql能groupby两个字段吗(MySQL group by语句如何优化)
- mysql update 多个字段(mysql update case 更新字段值不固定的操作)
- mysql添加注释视图(mysql创建表添加字段注释的实现方法)
- mysql账户访问权限(MySQL 权限控制详解)
- mysql详细学习笔记(Mysql常用命令 详细整理版)
- 《乡村爱情13》开播,新版刘能以假乱真,编剧思维进入瓶颈(新版刘能以假乱真)
- 当年的 白洋淀战神 练肌肉 嘎子哥也成为行走的荷尔蒙(当年的白洋淀战神)
- 肌肉小子陈康, 亚洲巨兽 黄哲勋,哪个才是你的菜(肌肉小子陈康亚洲巨兽)
- 新闻周刊 青岛网红 赵厂长 编段子一箩筐输出快乐,陪父亲十二载勇斗病魔(新闻周刊青岛网红)
- 44岁夏雨演谋女郎爸,大其24岁却看不出,互动不怕袁泉吃醋(44岁夏雨演谋女郎爸)
- 全椒人,你还记得吗 那年,那人,那网,那些我们的青春记忆(全椒人你还记得吗)
热门推荐
- 修改mysql默认超时(MySQL sql_mode修改不生效的原因及解决)
- laravel认证系统(Laravel框架Auth用户认证操作实例分析)
- mysqlupdate怎么设置(MySQL update 语句的正确用法)
- 如何提高织梦dedecms的安全性(详解织梦DedeCMS幻灯片调用图片显示模糊的原因以及解决办法)
- 停止mysql服务命令(windows下实现定时重启Apache与MySQL方法)
- sql server 获取时间(SQL SERVER中常用日期函数的具体使用)
- 前端单行文本垂直居中(移动端的text-overflow多行文本溢出显示省略号…)
- svg如何生成(使用SVG实现提示框功能的示例代码)
- 面试时如何回答对工作的期望
- dedecms编写模板(dedecms模板怎么修改)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9