有什么办法可以使用Redshift中存储在表中的函数名称?

阿维夫金雕

我有一个表,其中不同的操作应应用于不同的列。

我们称之为A

foo | bar | baz
---------------
   0|    1|   2
   3|    4|   5

现在假设有一张桌子 B

columnname|operation
--------------------
       foo|  f_add_1
       bar|f_times_2
       baz|f_minus_3

如果存在与每个条目相对应的SQL UDF B.operation,我们通常可以其中类似地调用它们:SELECT f_add_1(2)= 3

在纯Redshift风格的SQL中,有没有一种方法可以组成这两个表来生成一个表C,其中table中的操作B将应用于table中的值A

foo | bar | baz
---------------
   1|    2|  -1
   4|    8|   2

实际上,我的“表A”将具有数百万行,而我的“表B”将具有对应于数百或数千列的10个操作。

我当然可以使用包装脚本来执行此操作,但是在一个查询中完成整个操作确实很巧妙。

约翰·罗滕斯坦

Amazon Redshift存储过程可以构造包含命令的文本字符串,然后将其传递给EXECUTE命令。因此,是的,可以基于行的内容来调用适当的函数。

但是,不可能简单地说“将此列的值插入SQL查询并运行匹配的存储过程”。相反,将需要通过单独的查询针对每一行专门调用存储过程。鉴于表具有数百万行,这将是非常低效的。

如果可能的操作数量有限,则更好的方法可能是:

  • 对于每个不同的操作:
    • 运行执行该操作的SQL查询 WHERE operation = desired_operation

因此,如果有5个不同的操作,则将需要5个独立的查询才能运行,每个查询都在许多行上运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有什么办法可以使我的函数在表中添加一行?

有什么办法可以使用hibernate-envers审核在EmbeddedId中具有@Embedded的实体

有什么办法可以使用Java 8替换List中的Map值?

有什么办法可以使用mongoose从mongodb的批量操作中获取修改的IDS?

有什么办法可以使用python硒中的send_keys更改文本的颜色?

有什么办法可以使用材质视觉在iOS中自定义控件样式?

有什么办法可以使用XSLT从String中获取数字并计算相同的总和?

有什么办法可以使用聚合从猫鼬的ObjectId中获取日期吗?

有没有办法在C中获取函数的参数名称

有什么办法可以在docker stats中显示容器名称?

函数名称与内核模块中的函数冲突。有没有办法先调用自己的函数?

有什么办法可以在eclipse RCP中创建无论焦点如何都可以使用的键绑定?

有什么办法可以先在Haddock中描述函数参数?

有什么办法可以在Kotlin的构造函数中声明T?

有什么办法可以删除angularjs中的手表

我可以使用我在数据中的设置动态更改子组件实例中父组件的函数名称吗?

在Python中传递参数时,我可以使用相同的参数名称吗?

调用函数名称存储在bash中的变量中

有没有办法像Ruby中那样通过字符串插值在Elixir中使用动态函数名称?

在R中:为什么没有函数可以使用的每个参数的完整列表?

有什么办法可以使用闪亮的操作按钮将行递归地添加到data.frame中?

有什么办法可以使用命令行在Windows 10中增加系统容量

有什么方法可以使用Angular材质中的mat-table编辑表的特定列

有什么方法可以使用Apache POI在Excel中创建数据透视表?

有什么方法可以使用BeatifulSoup编辑html文件中以编程方式嵌套的表?

有什么办法可以使带有动画的圆形按钮中的按钮变形

使用'useState'钩子时,有什么方法可以使用React DevTools查看React多状态中的'fields'名称

有什么办法可以使用jQuery筛选多个条件?

有什么办法可以使用jstl编写注释?