有没有一种方法可以很容易地分配别名?e、 g.作为存款金额的总和(存款金额)

ffx8fchx  于 2021-06-26  发布在  Impala
关注(0)|答案(1)|浏览(368)

我经常做查询,在那里我做了很多sum,count,甚至nvl()。大多数情况下,我最终调用的计算值与以前相同。
例如,目前我的代码中有:

sum(vl.margin_1d) as margin_1d,
    sum(vl.margin_7d) as margin_7d,
    sum(vl.margin_14d) as margin_14d,
    sum(vl.margin_28d) as 
    sum(vl.margin_35d) as 
    sum(vl.margin_42d) as 
    sum(vl.margin_56d) as 

    sum(vl.deposit_1d) as 
    sum(vl.deposit_7d) as 
    sum(vl.deposit_14d) as 
    sum(vl.deposit_28d) as 
    sum(vl.deposit_35d) as 
    sum(vl.deposit_42d) as 
    sum(vl.deposit_56d) as

我加载了更多这样的计算值,因此在每次求和后键入相同的别名需要花费大量时间(这也很无聊)。
是不是有什么小把戏能让你更容易做到这一点?
我在想这样的事情:

SUM(deposit_7d) as SAME

谢谢,索菲
p、 这段代码特别是在 Impala ,但我也经常使用甲骨文。

suzh9iv8

suzh9iv81#

如果您想做的只是避免键入一些内容,那么您可以创建一个查询来为您完成这项工作,例如,在oracle中,我会执行以下操作:

select 'sum(vl.'||column_name||') as '||column_name||','
from   all_tab_columns
where  table_name = 'YOUR_TABLENAME'
and    column_name in (...)
order by column_name;

或者可以使用excel及其concatenate()公式获取列名列表并输出每个列名所需的数据,或者如果您有支持正则表达式的文本编辑器,也可以执行类似的操作。

相关问题