regex 使用SQL根据字符串中的值计算百分比

5kgi1eie  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(104)

我不太确定我用词是否恰当:
我有一个列的进度状态

| progress|
| -------- |
|10 of 100 completed|
|20 of 100 completed|
|40 of 200 completed|
|69 of 420 completed|
etc

我想知道是否有一个简单的方法来计算每一行的百分比?或者我必须用正则表达式将值分为2列并以这种方式计算?
我在想(我要把这个搞砸了,我道歉,我实际上不知道如何写SQL):

regexep (r'^[0-9]+) / regexp (r'[0-9]$)
ktecyv1j

ktecyv1j1#

在MySQL 8.0+中,可以使用regexp_substr()在一行中获取结果。
下面是query

select
    task,
    CAST(REGEXP_SUBSTR(progress, '\d+', 1, 1) AS float) / CAST(REGEXP_SUBSTR(progress, '\d+', 1, 2) AS float) as progress_rate
from
    task

| 任务|进度_速率|
| - ------|- ------|
| ("10 of 100 completed")|0.1|
| ("20 of 100 completed")|0.2|
| ("40 of 200 completed")|0.2|
| ("69 of 420 completed")|0.16428571428571428|

相关问题