SQLite 按每个组的平均值估算缺失值
SQLite impute missing values by mean for every group
我有一个 SQLite table 如下所示。
students
grades
Nick
34
Nick
42
Nick
86
Nick
Null
John
38
John
12
John
74
John
Null
Colin
87
Colin
23
Colin
46
Colin
42
我想做的是用每个学生成绩的平均值来估算 Null 值。
例如,Nick 的缺失值为 54,John 的缺失值为 41.3。
我如何在 SQL 代码中执行此操作?我正在使用 SQLite.
在 UPDATE 语句中使用相关子查询:
UPDATE tablename AS t1
SET grades = (
SELECT ROUND(AVG(t2.grades), 1)
FROM tablename AS t2
WHERE t2.students = t1.students
)
WHERE t1.grades IS NULL;
参见demo。
我有一个 SQLite table 如下所示。
students | grades |
---|---|
Nick | 34 |
Nick | 42 |
Nick | 86 |
Nick | Null |
John | 38 |
John | 12 |
John | 74 |
John | Null |
Colin | 87 |
Colin | 23 |
Colin | 46 |
Colin | 42 |
我想做的是用每个学生成绩的平均值来估算 Null 值。 例如,Nick 的缺失值为 54,John 的缺失值为 41.3。 我如何在 SQL 代码中执行此操作?我正在使用 SQLite.
在 UPDATE 语句中使用相关子查询:
UPDATE tablename AS t1
SET grades = (
SELECT ROUND(AVG(t2.grades), 1)
FROM tablename AS t2
WHERE t2.students = t1.students
)
WHERE t1.grades IS NULL;
参见demo。