2017-11-04 15 views
-1

私のdbから特定の情報を抽出したいと思います。PostgreSQLでクエリの結果を変換する方法

Name Description Status Count 
------------------------------------------- 
A  a-desc  S1  200 
A  a-desc  S2  50 
A  a-desc  S3  102 
B  b-desc  S1  10 
B  b-desc  S3  12 

は、私は、この他に、そのテーブルを変換したい:私はPostgresのを使用してこれを実行したい

Name Description S1  S2  S3 
------------------------------------------- 
A  a-desc   200 50  102 
B  b-desc   10  0  12 

最初のクエリを行った後、私はこのような結果を得ました。ネストされたクエリを使用しようとしましたが、現時点では対応できませんでした。ここで

+0

どのデータベースを使用していますか? – GurV

+0

"sql"は言語ですが、異なるベンダーによって異なる実装がされているため、クエリ構文が異なるためデータベースのブランドを知る必要があります。 MySQL?オラクル? Postgres? SQLサーバー? .... –

+0

はい、申し訳ありませんが、私はPostgreSQLを使用しています – afonte

答えて

1

は、ほとんどのRDBMSがサポートする汎用的なSQLを使用して「ピボットクエリ」を実行する「伝統的な」方法です:

select 
    Name 
, Description  
, max(case when status = 'S1' then count end) as S1 
, max(case when status = 'S2' then count end) as S2 
, max(case when status = 'S3' then count end) as S3 
from (

    your query goes here 

    ) d 
group by 
    Name 
, Description  

データベースがピボットのための特定の機能を提供することができるが(、私たちは何を知っていたならばつまり、)ですが、伝統的な方法は適応可能であり、知っておくと便利です。

+0

非常に便利な答えは、ピボットクエリは非常にうまく動作:)。私はこれを深く勉強します。 – afonte

関連する問題