这个 idea 是对几个表进行求和.我可以让COUNT起作用,但当我将其更改为SUM时,我会得到一个错误.

查询错误:ERROR:ER_PARSE_ERROR:您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,以了解要在‘*)FROM(SELECT*FROM T1 UNION SELECT*FROM T2 UNION SELECT*FROM T3)a’第1行使用的正确语法

create table t1(s int);
create table t2(s int);
create table t3(s int);

insert into t1 values(1);
insert into t2 values(2);
insert into t3 values(3);

select count(*) from 
(select * from t1 union 
 select * from t2 union 
 select * from t3
) as ta;

DB fiddle

推荐答案

COUNT*有一种特殊处理,它对行进行计数,而不考虑任何null值.SUM必须以(数值)表达式作为其参数.

在本例中,您可以使用sum(s):

select sum(s) from 
(select * from t1 union 
 select * from t2 union 
 select * from t3
) as ta;

100

Mysql相关问答推荐

在MySQL查询中查找和替换表内的值

在 MySQL 中跨日期和位置计算和排序实体的共现

MySQL DISTINCT 日期仅返回特定表的 1 个值.相同的查询适用于其他表

为什么这个查询需要超过 5 秒才能运行?

当每组的列值发生变化时 Select 并连接行

MYSQL除以零警告,奇怪的行为

MYSQL如何将虚拟列添加到现有表中

在 MySQL 中 Select COUNT of MAX

mysql 5.5;可以从记录中排除表吗?

如何存储百分比值?

MySQL - 如何在 INSERT 语句中将字符串值解析为 DATETIME 格式?

如何在 MySQL 上一次删除一系列记录?

MySQL - 如何 Select 值在数组中的行?

如何为 php 启用 mysqlnd?

MySQL嵌套 Select 查询?

Mysql中int(10)的最大大小是多少

警告:mysqli_connect(): (HY000/1045): Access denied for user 'username'@'localhost' (using password: YES)

在 MySQL 中的子查询上使用 GROUP_CONCAT

int(11) 和 int(11) UNSIGNED 有什么区别?

mysql错误'TYPE = MyISAM'