2016-10-12 6 views
0

データをredshiftで取得し、MySQLを使用して必要な情報を取得します。特定の名前のため行の値を列に変換し、SQLの単一の値の下に3列を追加する方法

Data Available in Redshift

、平均値、最大値及び最小値は、それぞれの日に、一定時間ごとに保存されます。

必要な出力は、各名前に対して、最小値の最大値、最大値、最大値の最大値が1日単位で設定されることです。

Output Format

問題は、作成日が行の値であり、列ヘッダーにする必要があることです。毎日、Avg、Max、Minの3つのサブカラムが必要です。

必要な出力を得るために手伝ってください。

ありがとうございます!

答えて

0

あなたが解決策としてこれを持つことができますが、私は仕方がないと思うが、3つの列

select name, 
round(avg(case when created = '2016-10-01' then average else null end),3) '1st October avg', 
round(max(case when created = '2016-10-01' then maximum else null end),3) '1st October max', 
round(min(case when created = '2016-10-01' then minimum else null end),3) '1st October min', 
round(avg(case when created = '2016-10-02' then average else null end),3) '2nd October avg', 
round(max(case when created = '2016-10-02' then maximum else null end),3) '2nd October max', 
round(min(case when created = '2016-10-02' then minimum else null end),3) '2nd October min', 
round(avg(case when created = '2016-10-03' then average else null end),3) '3rd October avg', 
round(max(case when created = '2016-10-03' then maximum else null end),3) '3rd October max', 
round(min(case when created = '2016-10-03' then minimum else null end),3) '3rd October min' 
from 
(select 'hp001' name, 0.28 average, 0.33 maximum, 0.25 minimum, '2016-10-01' created union 
select 'hp002' name, 0.28 average, 0.33 maximum, 0.25 minimum, '2016-10-01' created union 
select 'hp003' name, 0.28 average, 0.35 maximum, 0.25 minimum, '2016-10-01' created union 
select 'hp001' name, 0.28 average, 0.33 maximum, 0.25 minimum, '2016-10-01' created union 
select 'hp002' name, 0.28 average, 0.35 maximum, 0.25 minimum, '2016-10-02' created union 
select 'hp003' name, 0.27 average, 0.33 maximum, 0.24 minimum, '2016-10-02' created union 
select 'hp001' name, 0.27 average, 0.33 maximum, 0.24 minimum, '2016-10-02' created union 
select 'hp002' name, 0.28 average, 0.34 maximum, 0.25 minimum, '2016-10-02' created union 
select 'hp003' name, 0.28 average, 0.33 maximum, 0.23 minimum, '2016-10-03' created union 
select 'hp001' name, 0.28 average, 0.33 maximum, 0.25 minimum, '2016-10-03' created union 
select 'hp002' name, 0.28 average, 0.34 maximum, 0.22 minimum, '2016-10-03' created union 
select 'hp003' name, 0.28 average, 0.33 maximum, 0.25 minimum, '2016-10-03' created) t group by name; 
+0

おかげモンティ・パイソン上記ヘッダーとして列を持つ方法を持っています。しかし、データは毎日動的に変化し、私にとってはうまくいかないでしょう。 – Kannan

関連する問題