【问题标题】:Vertica : Function return multiple columnVertica:函数返回多列
【发布时间】:2016-08-02 06:22:05
【问题描述】:

我有大约 40 个查询,它们在各种表上运行,每个查询的末尾是一个子查询,用于根据上述子查询的值计算一些指标。每个查询中的最终子查询如下所示 -

SELECT dimension,
       CASE when(impressions!=0) THEN clicks/impressions*100
           ELSE NULL
       END ctr,
       CASE when(impressions!=0) THEN gross_rev/impressions*1000
           ELSE NULL
       END cpm,
       CASE when(clicks!=0) THEN gross_rev/clicks
           ELSE NULL
       END cpc,
       CASE when(actions!=0) THEN gross_rev/actions
           ELSE NULL
       END AS cpa,
       CASE when(post_click!=0) THEN gross_rev/post_click
           ELSE NULL
       END AS pc_cpa

我想重用这些公式所以想写一个函数。但是 vertica 函数不会返回多于一列。

关于如何在函数中重用这些子查询或 vertica 的任何其他可重用技术的任何想法。

【问题讨论】:

    标签: sql function reusability vertica


    【解决方案1】:

    您可以通过创建自己的 Vertica UDX 来做到这一点,UDX 应该是 TRANSFORM 类型,使用这种类型的 UDX 输出架构与输入架构无关,所以基本上您可以提供列列表作为输入和输出可以是不同大小的不同列表。

    您可以在 GitHub https://github.com/vertica/Vertica-Extension-Packages 中查看一些示例

    希望对你有用

    谢谢

    【讨论】:

      猜你喜欢
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多