1. 程式人生 > >mysql 分組之後每組的最大值減去第二個值

mysql 分組之後每組的最大值減去第二個值

表只有一個C,結果A,結果B都是重表c查詢出來的。

步驟1:根據條件查出分組中最大值的資料,當做查詢結果A

select C.id,max(power) from C group by C.name

2:根據條件查詢分組中第二大的值(這裡查詢用not in排除最大值之後的第二大值就是最大的了),當做查詢結果B

例如: select C.id,max(power) from C where C.power not in A group by C.name

3:用表A left join B(A的資料必須有,B資料可以沒有,相減就當作做是差了,注意判斷null)

例如:

select A.id,(IFNULL(A.power,0)-IFNULL(B.power,0)) power from A left join B on A.id=B.id

思路大概就是這樣子,有條件限制的,查詢檢視a的時候必須帶上,但是檢視b有些條件可以適當不要。