Выберите совокупный / вычисляемый столбец в представлении - PullRequest
0 голосов
/ 09 мая 2018

Я создал представление 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 голосов
/ 09 мая 2018

Вы должны дать этому столбцу правильное имя. Как это

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

Тогда вы можете выбрать, что

select amt_sum from blackjack_balance

Кстати, MySQL использует обратные метки для экранирования «специальных» имен столбцов или таблиц.

select `sum(amt)` ...
...