У меня есть таблица с 200 столбцами (может быть, больше ...)
a1 a2 a3 a4 a5 ...a200
---------------------------------
1.2 2.3 4.4 5.1 6.7... 11.9
7.2 2.3 4.3 5.1 4.7... 3.9
1.9 5.3 3.3 5.1 3.7... 8.9
5.2 2.7 7.4 9.1 1.7... 2.9
Я хотел бы вычислить много операций:
- СУММА (каждый столбец)
- AVG (каждый столбец)
- SQRT (SUM (каждый столбец))
- МОЩНОСТЬ (СУММА (каждый столбец), 2)
- MIN (все столбцы)
- MAX (все столбцы)
БОЛЬШОЙ (СУММА (один столбец) против СУММ (другой столбец))
что-то вроде поиска, какая сумма является наибольшей для каждого столбца:
a1 vs a2, a1 vs a3, a1 vs a4....,a1 vs a200,
a2 vs a1, a2 vs a3, a4 vs a5....,a2 vs a200,
...
a200 vs a1, a200vs a2, a200vs a3.....a200 vs a199
Если я сделаю один оператор выбора для каждого столбца и для каждой операции, у меня будет:
SELECT
SUM(a1),...,SUM(a200),
AVG(Sum(a1)),...,AVG(Sum(a200)),
POWER(Sum(a1),2),...,POWER(Sum(a200),2),
GREATEST(SUM(a1),SUM(a2)), GREATEST(SUM(a1),SUM(a3)),...,GREATEST(SUM(a1),SUM(a200)),
GREATEST(SUM(a2),SUM(a1)), GREATEST(SUM(a2),SUM(a3)),...,GREATEST(SUM(a2),SUM(a200))....
GREATEST(SUM(a200),SUM(a1)), GREATEST(SUM(a200),SUM(a3)),...,GREATEST(SUM(a200),SUM(a199))
etc... FROM tabMultipleColumns
Проблема здесь, когда я делаю запрос с более чем 1024 возможных результатов
ака,> = 1024 столбца
Есть ли способ продолжать выполнять массовые операции с данными делать одно сканирование таблицы , я имею в виду избегать многократного выбора операторов?
Я пытаюсь использовать только сканирование, потому что, если таблица огромна (с размером
из многих ГБ) использование нескольких операторов select для сканирования одной и той же таблицы будет дорогостоящим ...
Можно ли использовать такой инструмент, как BCP
, или какое решение, по вашему мнению, более эффективно ...
если вы ищите только SUM, POWER (SUM (), 2) и SQRT (SUM ()), есть столбцы результата 600
... если я продолжу выполнять эти операции, их будет больше 1024 .. .