我正在阅读这篇关于Google BigQuery的文章:
他们使用了几个函数,我试图弄清楚 Oracle 的等价物是什么,如果它们存在的话。
我正在研究 Oracle 文档,发现类似于ARRAY_AGG
Oracle 中称为LISTAGG
.
我正在阅读这篇关于Google BigQuery的文章:
他们使用了几个函数,我试图弄清楚 Oracle 的等价物是什么,如果它们存在的话。
我正在研究 Oracle 文档,发现类似于ARRAY_AGG
Oracle 中称为LISTAGG
.
STRUCT
有没有和UNNEST
我必须自己写的东西做同样的事情的东西?
技术翻译
在一种 RDBMS 中解决问题的技术并不总是能很好地转化为另一种 RDBMS。
我遇到过与文章中类似代码的性能问题。因此,我的评论是“这种技术会降低 Oracle 的性能”。
我没有看到
CAST(MULTISET())
(Oracle 的版本ARRAY_AGG
)被使用得太多。因此,在您获得晋升后,您的替代者可能无法维护代码。翻译术语
翻译是这样的
STRUCT
在 BigData 中就是TYPE
在 Oracle 中ARRAY_AGG
在 BigData 中就是CAST(MULTISET())
在 Oracle 中UNNEST
在 BigData 中就是TABLE()
在 Oracle 中UNNEST
的 XML 数据XMLTABLE()
在 Oracle 中UNNEST
JSON 数据JSON_TABLE()
在 Oracle (12c+) 中您不能即时创建结构。你必须提前定义它。
例子
创建单行结构:
根据以上创建一组行的结构:(
nested table
)使用
CAST(MULTISET())
使用
TABLE()
甲骨文的解决方案
业务需求:我想要飓风第一次达到其最大类别及其位置。
除了飓风名称之外,其他推断的“GROUP BY”标识符将是季节、流域、子流域。
在 Oracle 中解决此问题的一种方法是使用 Analytics。
由于我无权访问飓风数据,因此我必须即兴发挥。
我们做的第一件事是使用分析函数按(降序)和(升序)
RANK()
对所有行进行排名,但按、、和划分排名category
time
season
basin
subbasin
hurricane_name
最后,我们只会选择最好的 (rank_score=1)
把它们放在一起