我有一个学生数据集,可以计算某个日期的平均分数(到最近的 decimal)。数据集充满了拼写错误。一个样本数据是:
student_id date avg_test_score
ab_1 1/2/20 95..6
ab_2 1/2/20 60.7
ab_3 2/4/20 88..7
ab_4 2/4/20 98.7.
这可能看起来很简单,但我在 postgresql 中的查询遇到了困难。
谢谢!
回答1
您可以在 avg_test_score
列上尝试以下正则表达式更新:
UPDATE yourTable
SET avg_test_score = SUBSTRING(
REGEXP_REPLACE(avg_test_score, '\.{2,}', '.') FROM '\d+(?:\.\d+)?');
上述逻辑首先用一个点替换两个或多个点的序列。然后我们从剩下的内容中提取整数或浮点数。