Замена отсутствующих значений в таблицах sqlite

Вопрос:

У меня есть таблица, которую я создал в 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.)

Оцените статью
TechArks.Ru
Добавить комментарий