Кажется, я нашел обходной и неуклюжий способ сделать это в Афине, так что любые лучшие ответы приветствуются. Этот подход требует, чтобы в вашей таблице уже был какой-то числовой столбец, в данном случае с именем some_numeric_column
:
SELECT some_numeric_column, row_num FROM (
SELECT some_numeric_column,
row_number() over (order by some_numeric_column) as row_num
FROM your_table
)
WHERE row_num between 100000 and 100010
Чтобы объяснить, вы сначала выбираете какой-либо числовой столбец в ваших данных, а затем создаете столбец (называемый row_num) номеров строк, который основан на порядке выбранного вами числового столбца. Затем вы оборачиваете все это в вызове select, потому что Athena не поддерживает создание и последующую обработку столбца row_num в рамках одного вызова. Если вы не закроете его за второй SELECT
вызов, Афина выложит несколько ошибок о том, что не найдет столбец с именем row_num
.