iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL group by和order by如何一起使用
  • 862
分享到

MySQL group by和order by如何一起使用

MySQLgroupbyorderby 2022-05-27 23:05:57 862人浏览 独家记忆
摘要

假设有一个表:reward(奖励表),表结构如下: CREATE TABLE test.reward ( id int(11) NOT NULL AUTO_INCREMENT, uid int(11) NOT

假设有一个表: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的最大值,但是该最大值对应的整条记录没有取出来。

如果需要取得整条记录,则不能使用这种方法,可以使用子查询。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL group by和order by如何一起使用

本文链接: http://www.lsjlt.com/news/9915.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Group By和Order By一起使用的问题
    又是那个百万级数据的数据库表……原本使用分组后查询语句正常运行,现在新的需求要求每个分组的数据显示最新一条,未加Order By之前的查询语句如下,每个分组数据会默认取第一条 SELECT * FROM table1...
    99+
    2023-09-13
    数据库 sql mysql
  • mysql查询语句group by和order by的使用
    这篇文章主要讲解了“mysql查询语句group by和order by的使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql查询语句group b...
    99+
    2024-04-02
  • mysql中count(), group by, order by怎么用
    这篇文章给大家分享的是有关mysql中count(), group by, order by怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mysql中count(), gr...
    99+
    2024-04-02
  • sql中group by和oder by怎么一起使用
    使用 group by 和 order by 可以对分组数据进行排序:1. group by 分组数据;2. order by 对每组数据排序。 SQL 中 GROUP BY 和 OR...
    99+
    2024-05-02
    聚合函数
  • mysql中order by和分组能一起使用么
    是的,mysql 允许在分组查询中使用 order by 子句排序结果,步骤如下:分组数据(group by)聚合数据(使用聚合函数)排序结果(order by) MySQL 中 OR...
    99+
    2024-05-09
    mysql 聚合函数
  • MySQL中Order By如何使用
    这篇文章将为大家详细讲解有关MySQL中Order By如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 ORDER BY uid ASC 按照u...
    99+
    2024-04-02
  • mysql中group by如何使用
    小编给大家分享一下mysql中group by如何使用,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql中group by的用法是配合聚合函数,利用分组信息进行统计,语句如“selec&...
    99+
    2024-04-02
  • mysql中order by如何用
    本篇内容主要讲解“mysql中order by如何用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql中order by如何用”吧! ...
    99+
    2024-04-02
  • MySql中如何用group by
    今天小编给大家分享一下MySql中如何用group by的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2024-04-02
  • MYSQL如何实现ORDER BY和LIMIT
    这篇文章主要为大家展示了“MYSQL如何实现ORDER BY和LIMIT”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MYSQL如何实现ORDER BY和LIM...
    99+
    2024-04-02
  • Linq如何使用Group By
    这篇文章主要介绍Linq如何使用Group By,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.计数var q =  from p in db....
    99+
    2023-06-17
  • 怎么使用MySQL中order by
    本篇内容主要讲解“怎么使用MySQL中order by”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用MySQL中order by”吧!1、简介在使用select语句时可以结合o...
    99+
    2023-06-25
  • mysql中的group by 和 having使用
    mysql中的group by 和 having 使用 理论 –sql中的group by 用法解析: – Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(G...
    99+
    2023-09-14
    mysql 数据库 sql
  • MySQL中的distinct与group by如何使用
    这篇文章主要讲解了“MySQL中的distinct与group by如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL中的distinct与group by...
    99+
    2023-07-05
  • MySQL中order by的使用详情
    目录1、简介2、正文2.1 单个列排序2.2 多个列排序2.3 排序的方式2.4 order by结合limit 1、简介 在使用select语句时可以结合order by...
    99+
    2024-04-02
  • MySQL的order by怎么正确使用
    这篇文章主要介绍“MySQL的order by怎么正确使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL的order by怎么正确使用”文章能帮助大家解决...
    99+
    2024-04-02
  • 如何在SQL中使用Group By
    本篇文章为大家展示了如何在SQL中使用Group By,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、概述“Group By”从字面意义上理解就是根据“By”指定...
    99+
    2024-04-02
  • 将 MySQL SUM() 函数与 GROUP BY 子句一起使用有什么好处?
    当我们将 MySQL SUM() 函数与 GROUP BY 子句一起使用时,SUM() 函数会计算 GROUP BY 子句中指定的每个组的总和。将 SUM() 与 GROUP BY 子句一起使用的好处是我们可以轻松找到特定组的总计。要理解上...
    99+
    2023-10-22
  • 如何浅谈MySQL中的group by
    今天就跟大家聊聊有关如何浅谈MySQL中的group by,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、前言MySQL的group by用于对查询的数据进行分组;此外MySQL提...
    99+
    2023-06-25
  • MySQL如何使用group by 报this is incompatible with sql_mod
    MySQL如何使用group by 报this is incompatible with sql_mod,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作