Select 行(按 Amazon Athena 中的索引)

Select rows by index in Amazon Athena

这是一个非常简单的问题,但我似乎找不到相关文档。如何按索引查询行(即 select table 中的第 10 行到第 20 行)?

我知道有一个 row_numbers 函数,但它似乎无法满足我的要求。

我似乎在 Athena 中找到了一种迂回而笨拙的方法,所以欢迎任何更好的答案。这种方法要求您的 table 中已经有一些数字列,在本例中名为 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

解释一下,您首先 select 数据中的一些数字列,然后根据 select 的顺序创建一个行号列(称为 row_num)编辑数字列。然后将所有内容包装在 select 调用中,因为 Athena 不支持在单个调用中创建并调节 row_num 列。如果您不将其包装在第二个 SELECT 调用中,Athena 将吐出一些关于未找到名为 row_num.

的列的错误

不要指定任何分区,因此您的行号将是 1 和记录数之间的整数。

SELECT  row_num FROM (
  SELECT row_number() over () as row_num
FROM your_table 
  )
  WHERE row_num between 100000 and 100010