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

时间:2018-05-09 09:18:49

标签: mysql sql sql-view

我创建了一个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 |
+----------+

1 个答案:

答案 0 :(得分:2)

你应该给这个专栏一个正确的名字。喜欢这个

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

然后你可以选择那个

select amt_sum from blackjack_balance

BTW MySQL使用反引号来转义“特殊”列或表名。

select `sum(amt)` ...