从视图中选择聚合/计算列

ycggw6v2  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(428)

我已经创建了一个sql视图来总结 amt 其他表中的列:

create view blackjack_balance as 
select user_id, sum(amt) 
from blackjack_balance_change 
group by user_id;

这是预期的工作:

mysql> select * from blackjack_balance;
+---------+----------+
| user_id | sum(amt) |
+---------+----------+
|      73 |        2 |
|      74 |       -2 |
+---------+----------+

但是我如何只选择 sum(amt) 列?这不起作用:

mysql> select sum(amt) from blackjack_balance;
ERROR 1054 (42S22): Unknown column 'amt' in 'field list'

这是有道理的,因为没有 amt 列,而这似乎也不起作用:

mysql> select "sum(amt)" from blackjack_balance;
+----------+
| sum(amt) |
+----------+
| sum(amt) |
| sum(amt) |
+----------+

这样做的正确语法是什么?期望输出:

+----------+
| sum(amt) |
+----------+
|       -2 |
|        2 |
+----------+
eqfvzcg8

eqfvzcg81#

你应该给这个专栏起个正名。这样地

... select user_id, sum(amt) as amt_sum from ...

然后你可以选择

select amt_sum from blackjack_balance

顺便说一句,mysql使用backticks来转义“特殊”列或表名。

select `sum(amt)` ...

相关问题