在
MySQL
中,不能直接对别名字段列进行求和操作,需要使用内部查询或使用子查询来实现。
方法一:使用内部查询
SELECT SUM(ali
as
_column) FROM (SELECT column
AS
ali
as
_column FROM table)
as
temp_t
ab
le;
在内部查询中,将原始列使用
AS
关键字重命名为别名列,然后使用外部查询对别名列进行SUM操作。
方法二:使用子查询
SELECT SUM(temp_t
ab
le.ali
as
_column) FROM (SELECT column
AS
ali
as
_column FROM t
ab
le) temp_t
ab
le;
在子查询中,将原始列使用
AS
关键字重命名为别名列,并将其作为一个临时表,然后在外部查询中使用别名列进行SUM操作。
示例代码:
CREATE T
AB
LE test_t
ab
le(id INT, name V
AR
CH
AR
(20), score INT);
INSERT INTO test_t
ab
le VALUES(1, 'Alice', 80),(2, 'Bob', 90),(3, 'Ch
ar
lie', 95);
-- 内部查询求和
SELECT SUM(ali
as
_score) FROM (SELECT score
AS
ali
as
_score FROM test_table)
as
temp_t
ab
le;
-- 子查询求和
SELECT SUM(temp_t
ab
le.ali
as
_score) FROM (SELECT score
AS
ali
as
_score FROM test_t
ab
le) temp_t
ab
le;
注:以上方法适用于
MySQL
5.7及以上的
版
本。在早期
版
本中,使用别名列进行SUM操作可能会报错。