我正在翻译一个非常大的CTE Teradata查询,并且卡在这个跟随的部分,这是它自己的子查询,它正在交叉连接到一个非常大的子查询。
如何将此查询翻译成Bigquery?
(select row_number() over (order by tablename) subsequent_month from dbc.tables qualify row_number() over (order by tablename) <= 24)
思想家伙?
答案 0 :(得分:2)
以下是BigQuery Standard SQL
#standardSQL
SELECT subsequent_month FROM (
SELECT ROW_NUMBER() OVER (ORDER BY tablename) subsequent_month
FROM dbc.tables
) WHERE subsequent_month <= 24
答案 1 :(得分:0)
您需要qualify
的子查询:
from (select row_number() over (order by tablename) as subsequent_month
from dbc.tables
) t
where subsequent_month < 24;
在Teradata中,qualify
是一个适用于窗口函数的“where”子句。它类似于having
,它适用于聚合函数。
答案 2 :(得分:0)
这只返回24行,连续数字从1到24。
因此,将其转换为针对BigQuery中任何表的类似查询,或使用现有的数字表。