在大查询中查找从特定数字开始的序列
Posted
技术标签:
【中文标题】在大查询中查找从特定数字开始的序列【英文标题】:Finding sequence starting from a particular number in Big query 【发布时间】:2017-09-14 13:05:59 【问题描述】:我们如何才能实现与 Netezza 中提供的“SEQUENCE”相同的功能?
请在下面找到我想在大查询中实现的功能的链接:
[https://www.ibm.com/support/knowledgecenter/en/SSULQD_7.2.1/com.ibm.nz.dbu.doc/r_dbuser_create_sequence.html][1]
我已经查看了 RANK() 但这并没有解决我的核心目的。任何线索将不胜感激。
【问题讨论】:
【参考方案1】:在 BigQuery 标准 SQL 中,您可以在这里找到两个可以帮助您的函数 -
GENERATE_ARRAY(start_expression, end_expression\[, step_expression\])
和
GENERATE_DATE_ARRAY(start_date, end_date\[, INTERVAL INT64_expr date_part\])
例如下面的代码
#standardSQL
SELECT sequence
FROM UNNEST(GENERATE_ARRAY(1, 10, 1)) AS sequence
产生结果为
sequence
1
2
3
4
5
6
7
8
9
10
【讨论】:
感谢您提供这些解决方案。在我的实际场景中,我必须从任何具有增量序列的表中生成列值。例如:如果要从具有列 'name' 和 'color' 的表中生成 2 条记录,那么它就像 --- [1,Balajee,Red],[2,Mikhail,Blue] 你可以看到第一列遵循以“1”开头的增量序列。使用这些功能,我尝试实现相同的功能,但无法实现。有什么解决方法吗? 从您在评论中的解释来看-听起来很简单-但是由于它仍然太宽泛,无法给您具体的答案!正如我已经建议的那样 - 你应该用你的具体例子提出新问题 - 而不是问一般性问题 - 这当然会给你仍然相关但一般性的答案以上是关于在大查询中查找从特定数字开始的序列的主要内容,如果未能解决你的问题,请参考以下文章