У меня есть таблица, которую я создал в sqlite, которая выглядит так:
Age Height
12 186
175
169
13
15 171
Я хочу заменить недостающие значения в каждом столбце с его значением в столбце. Я использовал функцию обновления, но в таблице нет видимого обновления. Скажем, таблица выше называется тестом, я сделал это уже
UPDATE test SET Age=13.3 WHERE Age IS NULL;
UPDATE test SET Height=175.25 WHERE Height IS NULL;
Кроме того, я хотел бы знать, как я могу автоматически включать среднее значение с помощью оператора select без необходимости вручную вводить его
По-видимому, недостающие значения не являются NULL, а некоторым другим значением, вероятно, пустой строкой. Вы должны исправить это:
UPDATE test SET Age = NULL WHERE Age = '';
UPDATE test SET Height = NULL WHERE Height = '';
Чтобы вычислить среднее значение набора значений, используйте функцию агрегации AVG:
UPDATE test SET Age = (SELECT AVG(Age) FROM test) WHERE Age IS NULL;
UPDATE test SET Height = (SELECT AVG(Height) FROM test) WHERE Height IS NULL;
(AVG будет игнорировать значения NULL, но считать другие недопустимые значения как нулевое значение, поэтому важно, чтобы пропущенные записи на самом деле были NULL.)