База данных нашего поставщика имеет типы номеров для всех чисел, включая целые и десятичные числа. Буквально каждый столбец числового типа создается как NUMBER без точности и масштаба.
Это большая проблема, поскольку нам нужно сопоставить эти столбцы с соответствующими типами данных в нашей целевой системе, в которую мы загружаем данные из этих таблиц.
Нам нужно знать, является ли число целым или десятичным.
Можно ли, кроме выполнения случайной выборки / профилирования данных, выбрать правильные типы данных?
UPDATE:
Я принял ответ ниже и предложение от @ Bohemian. В дополнение к этому я буду использовать предложение SAMPLE, которое будет выполнять случайную выборку таблицы, поскольку мои исходные таблицы огромны (много миллиардов строк).
SELECT
MAX(CASE WHEN col1 IS NOT NULL AND col1 <> round(col1, 0) then 1 else 0 end) as col1,
MAX(CASE WHEN col2 IS NOT NULL AND col2 <> round(col2, 0) then 1 else 0 end) as col2
FROM TABLE
SAMPLE(0.05)
Если я хочу сэмплировать только X строк, используйте приведенную ниже формулу для ОБРАЗЦА (N):
Xrows * 100 / table_rows_total