您的位置:首頁技術文章
文章詳情頁

mysql如何得到表中哪條記錄的(a列-b列)的最大值?

瀏覽:58日期:2022-06-21 09:49:22

問題描述

我想求一個表中,那條記錄的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)

相關文章:
国产综合久久一区二区三区