sql - decimal 位置 + postgresql 中的错字

我有一个学生数据集,可以计算某个日期的平均分数(到最近的 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+)?');

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

相似文章

c - 为什么我的程序忽略了部分代码(在 c 中)

我写了这段代码,看看我是否可以将简单的数字从十进制转换为,例如,每个基数的二进制数(例如二进制基数=2)我知道它不会是十六进制或任何东西的正确数字在base=9以上,(这就是为什么我在printf(t...

随机推荐

最新文章