我有一个名为 login 的表,其中包含字段 id 和 success(0 或 1)。
我只需要返回 1 成功条目多于 0 的 id(对于每个 id)。
到目前为止,我只能查询#success,另一个查询#hits,另一个比较#hits > #fail
/*returns: id, #hits */
SELECT id, count(*) AS hits
FROM login u
WHERE u.success = 1
GROUP BY id;
/*returns: id, #fails*/
SELECT id, count(*) AS fails
FROM login u
WHERE u.success = 0
GROUP BY id;
/*returns id, #hits, #fails, #hits > #fails? */
SELECT id, SUM(success = 1) AS 'Hits' , SUM(success = 0) AS 'Fails', SUM(success = 1) > SUM(success = 0) as 'hits > fails?'
FROM login u
GROUP BY id;
只有一个字段,我无法进行任何直接比较。
有什么方法可以比较查询 1 和查询 2 的值吗?
我可以将查询 3 更改为仅返回 SUM(success = 1) > SUM(success = 0) 吗?
提前谢谢您。
最佳答案
不确定,但你可以尝试这样的事情:
SELECT col
FROM tbl
GROUP BY col
HAVING SUM(col1) > SUM(col2)
关于mysql - 比较同一列中的两个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34077826/