mysql - 从 View 中选择聚合/计算列

标签 mysql sql sql-view

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

相关文章:

MySQL:连接表并根据另一列上的聚合函数从一行返回一列

php - 通过MySQL建站的优缺点

sql - 当表仅包含过去几天时创建全月的 SQL View

mysql - 在 MySQL 存储过程中创建 View 并集

mysql - 使用 != 条件运算符时不会选择默认空值

MySQL 返回更新后的值

c# - 插入 SQL 数据库,在带有复选框列表的 foreach 中

jquery - Django查询慢,优化

php - 内部联接

sql - 选择 View 的列