この表の列を行に転置するのが大好きです。私は、列名として入力されたMUV値を持つそれぞれの列ヘッダーになるプロジェクト名(列1)を持っているようにしようとしています。SQL:Chartioの行を列として動的に転置する
このトピックでは20以上のスレッドを読んでいますが、使用できないさまざまなSQLパッケージとコードを使用しています。
理想的なソリューションは、目的のクエリの出力を作成するには、このクエリを変更します:
現在のクエリ:
SELECT
cust_gae_account.project_name as "Project Name",
cust_be_project_usage.unique_visitor_count as "MUVs",
cust_be_project_usage.billing_period_start as "Month"
FROM
cust_be_project_usage
INNER JOIN
cust_gae_account
ON cust_gae_account.account_id = cust_be_project_usage.project_id
WHERE
cust_be_project_usage.admin_account_id = {ACCOUNT_ID}
現在のクエリ出力:
Project Name | MUVs | Month
-----------------------------------------------------
ProjectAAAAAZ | 68000 | Jun 01, 2016
DynamicName | 3200 | Jun 01, 2016
ProjectAAAAAZ | 21000 | May 01, 2016
DynamicName | 4500 | May 01, 2016
CustomProject | 117000 | Jun 01, 2016
CustomProject | 118400 | May 01, 2016
目的のクエリ出力:
Project Name | CustomProject | ProjectAAAAAZ | DynamicName
-------------------------------------------------------------------
Jun 01, 2016 | 117000 | 68000 | 3200
May 01, 2016 | 118400 | 21000 | 4500
注:私たちはChartio経由のPostgreSQLを使用している
- は、我々は唯一の私たちは、カスタム関数悲しげに
- 名とプロジェクトの数は動的では使用できませんベースのSQL
- を使用することができ、 1から20まで変化します
- MUVは常に数値です。重複はありません
ことを変更する必要がある場合がありますので、あなたが
{ACCOUNT_ID}
パラメータを渡す方法がわから? –私たちはPostgreSQLを使用しています。私たちはカスタム関数を使用することはできません、残念なことにクエリのみ – Hazjier
あなたは基本的にピボットテーブルが必要です。 'crosstab' https://www.postgresql.org/docs/9.1/static/tablefunc.htmlでこれを行うことができますが、静的な幅のテーブルを出力します。定義済みのカラムとタイプがあります。あなたはDBの外でこれを行う必要があります。 または、動的クエリを作成し、 '実行 'を使用して実行してください – AlexanderMP