小数点后的错字+ postgresql



我有一个学生数据集,用于计算特定日期的平均分数(到最接近的小数)。这组数据充斥着错别字。示例数据为:

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+)?');

上面的逻辑首先用一个点替换两个或多个点的序列。然后从剩下的数据中提取整数或浮点数。