いつも大変参考にさせていただいております。
今回は、postgresqlのテーブルからどのようなSQLで抽出すればよいか、について質問をさせていただきます。
よろしくお願い致します。
[ TABLE ] create table exdb.t_test ( date_of_use date -- 利用日 ,usage_amount integer -- 利用金額 ,client_cd character varying(10) --顧客コード ,count_of_use integer -- 利用回数 ); [ INSERT DATA ] insert into t_test values('2021-01-01',980,"001",1); insert into t_test values('2021-05-01',1980,"001",2); insert into t_test values('2021-10-01',4580,"002",2); insert into t_test values('2022-04-01',29800,"001",1); insert into t_test values('2022-07-01',15800,"002",2); insert into t_test values('2022-08-01',12800,"003",1);
[ 実現したいSELECT結果 ]
|CD|21年回数|21年金額|22年回数|22年金額|
|001|3|2960|1|29800
|002|1|4580|2|15800
|003|0|0|1|12800
※ここでは2021年~22年のフィールドですが、実際データは2010年から始まり固定項目となります。
※年度単位が希望でしたが、今後読み込み側のプログラム側で年度制御を行なおうと考えているため、今回のSQLは年単位で抽出します。
※取り急ぎ、上記の抽出結果をExcelに貼り付けて別表を作成するために使用したいと思っています(今後はJavaより取得していきます)
[ チェレンジしたところまで ]
SQL
1select 2 client_cd,date_of_use,usage_amount,count_of_use 3from exdb.t_test 4group by client_cd,date_of_use,usage_amount,count_of_use 5order by clinet_cd;
▼▼-----結果-----▼▼
001 2021-01-01 980 1
001 2021-05-01 1980 2
001 2022-04-01 29800 1
002 2021-10-01 4580 2
002 2022-07-01 15800 2
003 2022-08-01 12800 1
▲▲--------------▲▲
たぶん複数のSELECTが混在するのだろうと思っているのですが、
そもそもSQL文のみで実現可能なのか理解できていないところです。勉強不足で大変申し訳ござません。
select
????
from (
select
client_cd,date_of_use,usage_amount,count_of_use
from exdb.t_test
group by client_cd,date_of_use,usage_amount,count_of_use
) as A, ????
アドバイス等いただけますようよろしくお願い致します。
補足情報(FW/ツールのバージョンなど)
PostgreSQL 15.1
pgAdmin4 ver.6.15
※頂きましたアドバイスのSQL確認等は、日中のみしか行えないため、返信が遅くなりますことを予めご承知いただけますと幸いです。
