我想根据max + sum条件选择一些条目.
mytable
----------
id | col1 | col2
Run Code Online (Sandbox Code Playgroud)
我想选择col1和col2之和大于或等于最大值减去X的所有条目.(不要问我为什么:))
到目前为止,我设法得到总和OK(以下别名为"total"):
SELECT id,SUM(col1 + col2) AS total FROM mytable GROUP BY id;
Run Code Online (Sandbox Code Playgroud)
我还设法得到总和的MAX(虽然有ORDER BY/LIMIT解决方法):
SELECT id,SUM(col + col) as total FROM mytable GROUP BY id ORDER BY total DESC LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
但是,每当我尝试重新使用别名作为条件(例如,WHERE total> = ...)时,我会收到"未知列"错误
任何事都会非常感激
你有一些误解SUM.SUM是一个聚合函数,意味着它适用于许多记录,而不仅仅是一个.
要计算每条记录的两个字段的总和,您应该只使用+运算符.
SELECT id, col1+col2 AS 'total'
FROM T1
WHERE
(col1+col2+x) >=(SELECT MAX(col1+col2) from T1)
Run Code Online (Sandbox Code Playgroud)