选择sum总和

时间:2010-08-04 14:41:14

标签: mysql sum max

我想根据最大+和条件选择一些条目。

mytable
----------
id | col1 | col2

我想选择总和为col1&的所有条目col2大于或等于最大值减去X.(不要问我为什么:))

到目前为止,我设法通过以下方式获得总和(以下别名为“total”):

SELECT id,SUM(col1 + col2) AS total FROM mytable GROUP BY id;

我还设法得到总和的最佳值(虽然有ORDER BY / LIMIT解决方法):

SELECT id,SUM(col + col) as total FROM mytable GROUP BY id ORDER BY total DESC LIMIT 1;

但每当我尝试重新使用别名作为条件时(例如WHERE total> = ...),我会收到“未知列”错误

任何事情都会非常感激

2 个答案:

答案 0 :(得分:6)

您对SUM有一些误解。 SUM是一个聚合函数,意味着它适用于许多记录,而不仅仅是一个记录 要计算每条记录的两个字段的总和,您应该只使用+运算符。

SELECT id, col1+col2 AS 'total'
FROM T1
WHERE
(col1+col2+x) >=(SELECT MAX(col1+col2) from T1)

答案 1 :(得分:1)

如果您使用group by,则需要使用having子句:

SELECT id,SUM(col1+col2) as total FROM mytable GROUP BY id ORDER BY total HAVING total >= x