在大查询中查找从特定数字开始的序列

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”开头的增量序列。使用这些功能,我尝试实现相同的功能,但无法实现。有什么解决方法吗? 从您在评论中的解释来看-听起来很简单-但是由于它仍然太宽泛,无法给您具体的答案!正如我已经建议的那样 - 你应该用你的具体例子提出新问题 - 而不是问一般性问题 - 这当然会给你仍然相关但一般性的答案

以上是关于在大查询中查找从特定数字开始的序列的主要内容,如果未能解决你的问题,请参考以下文章

在大查询中连接多个表

SQL 查询以查找遵循特定模式的字符串

基础知识(03) -- 二分法查询

查找特定字符串格式的 Oracle 查询

如何查询 Prometheus 中所有具有特定标签值的时间序列?

查找连续序列并建议序列中的下一个数字