文档章节

group by分组后获得每组中时间最大的那条记录

豆花饭烧土豆
 豆花饭烧土豆
发布于 05/19 16:26
字数 455
阅读 12
收藏 0

用途:

GROUP BY 语句用于 对一个或多个列对结果集进行分组。

例子:

原表:


现在,我们希望根据USER_ID 字段进行分组,那么,可使用 GROUP BY 语句。

我们使用下列 SQL 语句:

SELECT ID,USER_ID,problems,last_updated_date from t_iov_help_feedback GROUP BY USER_ID;


结果集类似这样:


可以看到上面的,结果的确是根据 USER_ID 进行分组了,但是返回的记录是 USER_ID 对应的每组 中最小的那条记录。也就是ID最小的那条。

现在我想分组后得到,last_updated_date 最大的那条记录。这怎么实现呢?

很简单,直接查询的表默认是以 ID 进行顺序排序的,因为分组的时候取的是每组中的第一条。所以只需要 使查询的表 按照 last_updated_date

倒叙排序就行了。


实现的SQL如下,这里使用了嵌套查询。

    SELECT ID,USER_ID,problems,last_updated_date  FROM  (select * from t_iov_help_feedback  order by USER_ID, LAST_UPDATED_DATE DESC) b
    GROUP BY b.USER_ID;


其中:select * from t_iov_help_feedback  order by USER_ID, LAST_UPDATED_DATE DESC 就相当于一个按照USER_ID升序, last_updated_date

倒叙排序的表了。

查询结果如下:


现在取的就是每组中时间最大的那条记录了。


当遇到两个不同的表时,可以使用以下SQL:

select a.title, t.name, t.price from a
inner join (select * from b order by id, price ) t on t.id = a.b_id
group by a.b_id;
---------------------
作者:zhang_wt
来源:CSDN
原文:https://blog.csdn.net/u012660464/article/details/78605078
版权声明:本文为博主原创文章,转载请附上博文链接!

本文转载自:https://blog.csdn.net/u012660464/article/details/78605078

豆花饭烧土豆

豆花饭烧土豆

粉丝 15
博文 358
码字总数 93985
作品 0
深圳
私信 提问
HQL或者MYSQL 如何查询拿到分组后 每组中主键id最大的那条记录?

HQL或者MYSQL 如何查询拿到分组后 每组中主键id最大的那条记录?

就是不着调
2012/06/18
4.5K
5
优化:mysql查询最近一条记录

下策——查询出结果后将时间排序后取第一条 这样做虽然可以取出当前时间最近的一条记录,但是一次查询需要将表遍历一遍,对于百万以上数据查询将比较费时;limit是先取出全部结果,然后取第一...

一只阿木木
2018/05/25
0
0
sql命令(四)-操作数据表中的记录

create table users ( //实验所使用的表结构 id SMALLINT UNSIGNED PRIMARY key auto_increment, username varchar(20) not null, passwd varchar(20) not null, agee TINYINT UNSIGNED not......

117
2015/12/28
41
0
group by搭配 order by解决排序问题

问题 Ftravel_id Facct_no Froute_code Fmodify_time 41010020180725102219102000010452 1359c027b0a15266418643239300118 4101001701E214 2018-07-25 10:22:19 410100201807251027491020000......

cposture
2018/07/30
0
0
SQL group by 查询统计问题,求解

例如我有一张表X(a,b,c),我想以c分组统计得到每组记录条数和每组中a大于2的记录条数,我的意思就是 select count(*),count(X.a>2) from X group by c——当然这个有问题,难道非要再写一个子...

吾同树
2014/10/16
701
2

没有更多内容

加载失败,请刷新页面

加载更多

IT兄弟连 Java语法教程 Java语言的跨平台特性

什么是平台 Java是可以跨平台的编程语言,那么首先我们需要知道什么是平台,通常我们把CPU与操作系统的整体称为平台。 CPU大家都知道,是计算机的大脑,它既负责思维运算,又负责计算机中各种...

老码农的一亩三分地
1分钟前
0
0
http传值问题

这两天遇到一个问题 ,与一个渠道联调接口,http请求,展示ptf 的需求,服务方以一个二进制的方式返回。 当时我们在一开始开发的时候,我们按照读取文件的方式处理,本地存一个ptf 的方式 ,...

鬼才王
10分钟前
0
0
【面试】如果你这样回答“什么是线程安全”,面试官都会对你刮目相看

不是线程的安全 面试官问:“什么是线程安全”,如果你不能很好的回答,那就请往下看吧。 论语中有句话叫“学而优则仕”,相信很多人都觉得是“学习好了可以做官”。然而,这样理解却是错的。...

中关村的老男孩
10分钟前
4
0
5.01- Druid数据源配置

1、配置项 配置 缺省值 说明 name 无 配置这个属性的意义在于,如果存在多个数据源,监控的时候 可以通过名字来区分开来。如果没有配置,将会生成一个名字, 格式是:"DataSource-" + Syste...

静以修身2025
15分钟前
0
0
itop4412开发板-Linux内核的编译

本篇文章基于itop4412开发板 5.3.2.1源码目录 Linux 内核源码在光盘“06_源码_uboot 和 kernel”目录下,如下图所示。 5.3.2.2 编译器 内核的编译器和 uboot 的编译器一样,参考“5.3.1.2 编...

书白
19分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部