我创建了一个 SQL View ,用于汇总另一个表中的 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'
这是有道理的,因为 View 中没有 amt
列,而且这似乎也不起作用:
mysql> select "sum(amt)" from blackjack_balance;
+----------+
| sum(amt) |
+----------+
| sum(amt) |
| sum(amt) |
+----------+
这样做的正确语法是什么?期望的输出:
+----------+
| sum(amt) |
+----------+
| -2 |
| 2 |
+----------+
最佳答案
您应该给该列一个适当的名称。像这样
... select user_id, sum(amt) as amt_sum from ...
然后你可以选择它
select amt_sum from blackjack_balance
顺便说一句,MySQL 使用反引号来转义“特殊”列或表名称。
select `sum(amt)` ...
关于mysql - 从 View 中选择聚合/计算列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50249734/