Ниже приведен пример для BigQuery Standard SQL
#standardSQL
CREATE TEMP FUNCTION mix_to_float(str STRING) AS ((
SELECT
IFNULL(SAFE_CAST(arr[SAFE_OFFSET(1)] AS INT64), 0) +
CAST(SPLIT(arr[SAFE_OFFSET(0)], '/')[OFFSET(0)] AS INT64) /
CAST(SPLIT(arr[SAFE_OFFSET(0)], '/')[OFFSET(1)] AS INT64)
FROM (SELECT ARRAY_REVERSE(SPLIT(str, ' ')) arr)
));
WITH `project.dataset.table` AS (
SELECT '1 1/2' mix UNION ALL
SELECT '8/3'
)
SELECT mix, mix_to_float(mix) as_decimal
FROM `project.dataset.table`
результат будет
Row mix as_decimal
1 1 1/2 1.5
2 8/3 2.6666666666666665
Выше предполагается, что в строке есть хотя бы дробная часть.
Просто быстрый вариант - скорее всего, можно оптимизировать дальше: o)