mysql如何得到表中哪条记录的(a列-b列)的最大值?
问题描述
我想求一个表中,那条记录的a-b列的值最大并且输出这个 最大的差值,试过select max(now_time-last_time) from log;这条语句不可以啊,没报错,但是什么也没返回。
我想问的就是,比如说一个表有now_time和last_time字段,而且这个表有很多记录,我想求出到底哪条记录的now_time-last_time的差最大。
问题解答
回答1:你的问题是,取now_time和last_time相差最大的哪一行对吧?那么select max(now_time-last_time) from log;这个代码的问题在于,max函数确实是用来计算这一列的最大值,但是max的参数应该是column名,因此now_time-last_time得不到任何东西,所以你什么也Query不到。
我的思路是这样的,先将每一行now_time和last_time的差值算出来,然后用order by来排序,取第一个即可:
select (now_time - last_time) as delta from log order by -delta;
考虑到你这里是计算时间,两个时间的最大差值应该取绝对值:
select abs(now_time - last_time) as delta from log order by -delta;回答2:
select (select max(time) from log) - (select min(time) from log)
相关文章:
1. html - 自学php 遇到代码不执行直接在网页上显示 望各位大神不吝赐教2. html - node-module文件有两个在我的项目文件里3. 这段代码是获取百度收录量的!需要怎么设置才能获取百度快照旁边的网址呢?4. 这是什么情况???5. android-studio - android studio如何设置默认打开欢迎页而不是最近的项目?6. 微信小程序的选项卡中的数据分页加载卡顿问题???7. linux - ngxin配置后,网页打不开8. Android Studio 中 xUtils 3.0 替换 2.0 的时候总报找不到 jar 包是什么原因?9. 数据表里没数据显示10. mysql如何配置远程php外网链接数据库
