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

用途:.net

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

例子:排序

原表:it


如今,咱们但愿根据USER_ID 字段进行分组,那么,可以使用 GROUP BY 语句。io

咱们使用下列 SQL 语句:ast

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


结果集相似这样:select


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

如今我想分组后获得,last_updated_date 最大的那条记录。这怎么实现呢?db

很简单,直接查询的表默认是以 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 版权声明:本文为博主原创文章,转载请附上博文连接!

相关文章
相关标签/搜索