ALTER TABLE. ADD COLUMN
В таблице films хранится информация о фильмах, в том числе и рейтинг фильма на разных сайтах. В поле imdb — рейтинг IMDB от 0 до 10, а в поле kinopoisk— рейтинг кинопоиска. Также от 0 до 10.
Добавьте в таблицу поле rating, для хранения среднего арифметического значения по всем рейтингам. По умолчанию поле должно содержать 0. Тип данных используйте такой же как и у других полей с рейтингом.
Помогите пожалуйста разобраться с синтаксисом и как создать это среднее значение по двум полям? я попробовал так, не получилось
ALTER TABLE films ADD COLUMN rating FLOAT NOT NULL (rating = (kinopoisk + imdb) / 2);
Выдаёт просто пустые колонки, без значений
Ответы (2 шт):
Автор решения: Oopss
→ Ссылка
CREATE TABLE films (
Id INTEGER PRIMARY KEY ,
name TEXT ,
imdb INTEGER,
kino INTEGER
);
INSERT INTO films VALUES (1,'Zorro',3,3);
INSERT INTO films VALUES (2,'Peper Chily',9,6);
INSERT INTO films VALUES (3,'King Kong',1,5);
SELECT * FROM films;
ALTER TABLE films add column rat float;
update films set rat=(imdb+kino)/2;
SELECT * FROM films;
+----+-------------+------+------+
| Id | name | imdb | kino |
+----+-------------+------+------+
| 1 | Zorro | 3 | 3 |
| 2 | Peper Chily | 9 | 6 |
| 3 | King Kong | 1 | 5 |
+----+-------------+------+------+
+----+-------------+------+------+------+
| Id | name | imdb | kino | rat |
+----+-------------+------+------+------+
| 1 | Zorro | 3 | 3 | 3 |
| 2 | Peper Chily | 9 | 6 | 7.5 |
| 3 | King Kong | 1 | 5 | 3 |
+----+-------------+------+------+------+
Автор решения: Akina
→ Ссылка
ALTER TABLE films
ADD COLUMN rating FLOAT GENERATED ALWAYS AS ((imdb+kino)/2) VIRTUAL;