[英]select sum where sum
我想根据最大和总和条件选择一些条目。
mytable
----------
id | col1 | col2
我要选择所有col1和col2之和大于或等于和减去X的最大值的条目。(不要问我为什么:))
到目前为止,我设法通过以下方式获得了总和:OK(以下简称为“总计”):
SELECT id,SUM(col1 + col2) AS total FROM mytable GROUP BY id;
我还设法获得了总和的最大值OK(尽管有一个ORDER BY / LIMIT解决方法):
SELECT id,SUM(col + col) as total FROM mytable GROUP BY id ORDER BY total DESC LIMIT 1;
但是,每次我尝试重用我的别名作为条件时(例如WHERE total> = ...),都会收到“未知列”错误
任何事情将不胜感激
您对SUM
有一些误解。 SUM
是一种汇总功能,意味着它可用于许多记录,而不仅仅是一个记录。
要计算每个记录两个字段的总和,应仅使用+
运算符。
SELECT id, col1+col2 AS 'total'
FROM T1
WHERE
(col1+col2+x) >=(SELECT MAX(col1+col2) from T1)
如果使用分组依据,则需要使用hading子句:
SELECT id,SUM(col1+col2) as total FROM mytable GROUP BY id ORDER BY total HAVING total >= x
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.