首页 > 解决方案 > 如何从别名中找到mysql中的总数(总和)?

问题描述

实际上我有原始数据库作为

SELECT sum(data1,data2) as database_value,sum(data3,data4) as database_not_value  from table_name;

| ID | science_name_short    |database_value   | database_not_value| 
|  1 | Rhododendron phipli   |3                | 4                 |  
|  2 | Rhododendron felica   |5                |6                  |  
| 3  | Rhododendron deron    |5                | 7                 |   
| 4  | Rhododendron  sednuns |5                |8                  |  

我想找到第一行、第二行、第三行的总数并将它们显示在总列中,所以我做了

SELECT sum(data1,data2) as database_value,sum(data3,data4) as database_not_value,sum(database_value+database_not_value) as total
  from table_name;

| ID |     science_name_short    |database_value   | database_not_value|Total | 
|  1 | Rhododendron phipli       |3                | 4                 |   7  |
|  2 | Rhododendron felica       |5                |6                  |   11 |
|3   | Rhododendron deron        |5                | 7                 |   12 |
|4   | Rhododendron  sednuns     |5                |8                  |   13 |



 then i get error as column "database_value" does not exist

标签: mysqldatabasemysql-workbench

解决方案


您不能在同一级别的查询中使用别名,要获得总数,您需要重复您的表达式

SELECT sum(data1 + data2) as database_value,
sum(data3 + data4) as database_not_value,
sum(data1 + data2) + sum(data3+ data4)  as total
from table_name;

sum()需要单个参数,所以我假设您使用+不使用逗号添加数据集


推荐阅读