繁体   English   中英

选择总和

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM