如何从数据库(oracle,mysql)中取出根据ID分组后,时间最大的数据

如何从数据库(oracle,mysql)中取出根据ID分组后,时间最大的数据,第1张

select *  from (select row_number() over(partition by id order by create_tiem desc) rn, id, create_time, ... , ... from table )t1 where rn = 1

在这里...代表的是字段名称,将需要的字段名称放在这里,需要哪些放那些。

SELECT t.*FROM (select * from `table` order by `create_time` desc limit 10000000000) t GROUP BY t.id

在这里就是先将数据进行排序然后再分组,然后取出的是最大的一个值,这里有点要注意,limit 10000000000这个根据不同的版本看是否要加这个,5.5之前的不用加,之后的要加,反正加上肯定没有错。

group by后取的一条数据默认是按主键id排序后的第一条

可用max函数及关联查询即可。

如数据

id               time

1    2015-08-01 00:00:00

1    2015-08-02 00:00:00

2    2015-08-03 00:00:00

2    2015-08-04 00:00:00

执行:

select a.* from 表名 a,

(select id,max(time) time from 表名 group by id) b

where a.id=b.id and a.time=b.time

执行结果:

id               time

1    2015-08-02 00:00:00

2    2015-08-04 00:00:00

取这串字符串中最大的数字?

string k = "abcdefghijklmnopsadjlvas094i029340$#%#&^%*%$*000888"

var max =k.AsQueryable().Where(o => o >= 48 && o <= 57).Max()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10099966.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存