Sam*_*Sam 1 mysql sql database
我在mysql db table中有两列投票:接受和拒绝
我想只查询接受拒绝列值后的最高结果
table : votes
=================
accept | reject
=================
7 | 9
5 | 1
2 | 15
5 | 1
Run Code Online (Sandbox Code Playgroud)
我想只是正和顶部的值,这里5 - 1 = 4 其实,我已经很多其他列的沿接受并reject..i只想ORDER由顶值的结果差(只有正)和LIMIT它到1,这样我就可以得到我想要的那一排......我清楚了吗?:)怎么写这个查询?谢谢..
使用:
SELECT t.accept,
t.reject,
t.accept - t.reject AS difference
FROM VOTES t
WHERE t.accept - t.reject > 0
ORDER BY difference DESC
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
使用子查询替代:
SELECT v.accept,
v.reject
FROM VOTES v
WHERE v.accept - v.reject > 0
JOIN (SELECT MAX(t.accept - t.reject) AS difference
FROM VOTES t
WHERE t.accept - t.reject > 0) x ON x.difference = (v.accept - v.reject)
Run Code Online (Sandbox Code Playgroud)