小数点错别字 + postgresql

Typo in decimal place + postgresql

我有一个学生数据集,可以计算某个 date.The 数据集的平均分数(精确到小数点后),数据集充满错别字。 样本数据是:

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 列进行以下正则表达式更新:

UPDATE yourTable
SET avg_test_score = SUBSTRING(
    REGEXP_REPLACE(avg_test_score, '\.{2,}', '.') FROM '\d+(?:\.\d+)?');

上述逻辑首先将两个或多个点的序列替换为一个点。然后我们从剩下的中提取整数或浮点数。