我有一个学生数据集,用于计算特定日期的平均分数(到最接近的小数)。这组数据充斥着错别字。示例数据为:
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。
谢谢!
您可以在avg_test_score
列上尝试以下regex更新:
UPDATE yourTable
SET avg_test_score = SUBSTRING(
REGEXP_REPLACE(avg_test_score, '.{2,}', '.') FROM 'd+(?:.d+)?');
上面的逻辑首先用一个点替换两个或多个点的序列。然后从剩下的数据中提取整数或浮点数。