2017-03-16 8 views
0

私は多くの場合、SUM、COUNT、さらにはNVL()を行う場所でクエリを実行します。ほとんどの場合、私は計算値を前と同じように呼ぶことになります。同じダウンタイプするエイリアスを簡単に割り当てる方法はありますか?例えば。 SUM(deposit_amount)as deposit_amount

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.S.このコードは特にimpalaにありますが、Oracleを頻繁に使用しています。

+2

'SUM(deposit_7d)'は 'deposit_7d'と同じではないため、明示的なエイリアスが必要です。 –

答えて

2

あなたがしたいことがいくつかの入力を避ける場合は、あなたのために仕事をするためのクエリをノックすることができます。あなたが持っている場合

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()式を使用することができ、あるいは:オラクルでは、私のような何かをしたいですあなたが似たような正規表現をサポートするテキストエディタ。

関連する問題