Как изменить таблицу (создать / изменить), чтобы вычисленное поле «Средняя оценка» отображалось при запросе всей таблицы без использования INSERT, UPDATE - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть стол Маркса. Я хочу добавить столбец Average_score, который будет рассчитываться как (Math+Physics)/2 Как я могу сделать это без обновления и вставки?

Select *, (Math+Physics)/2 from Marks 

Не правильный ответ, мне нужно изменить структуру.

Table Marks

1 Ответ

2 голосов
/ 09 апреля 2020

Добавьте новый сгенерированный столбец в вашу таблицу следующим образом:

alter table Marks add column `Average Score` float 
generated always as ((Math + Physics) / 2) virtual;

Вы можете изменить столбец на stored, а не virtual. Смотрите демо . Результаты:

| N   | Surname | Name | Math | Physics | Average Score   |
| --- | ------- | ---- | ---- | ------- | --------------- |
| 1   | Smith   | Ann  | 5    | 4       | 4.5             |
| 2   | Perkins | Zoe  | 2    | 3       | 2.5             |
| 3   | Jones   | Rick | 5    | 5       | 5               |

Подробнее о сгенерированных столбцах здесь: CREATE TABLE и сгенерированные столбцы и ALTER TABLE и сгенерированные столбцы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...