尝试为 BigQuery 中的不同值创建行号

Trying to create Row number for Distinct values in BigQuery

在 BigQuery 上,我试图获取要显示的不同值的行数以便于参考。 假设我有 1000 个不同的值并且我正在尝试获取第 340 行不同的值,我应该如何编码它。

我试过运行

SELECT
  DISTINCT column_2
FROM
  table

并确保结果是 column_2 的所有 DISTINCT 值。但是我如何在旁边添加行号,我能否为行号放置一个 WHERE?

由于 BigQuery 以并行方式工作,因此 guarantee/need 无法对 table 行进行任何排序。这也意味着没有行号。

如果你想要查询结果的第n个元素,你需要预先定义一个排序逻辑。您可以为此使用 navigational functions,或者如果您需要一个精确值

,则可以使用带有 OFFSET 的 LIMIT
with t as (

              select 'a' as val
    union all select 'a'
    union all select 'b'
    union all select 'c'
    union all select 'c'
    union all select 'f'
    union all select 'y'
    union all select 'z'
    union all select 'a'
)


select 
    distinct val 
from t
order by 1
-- 5th element has offset 4
limit 1 offset 4

考虑以下方法

select distinct column_2
from your_table
qualify 340 = dense_rank() over(order by column_2)