LoginSignup
0
0

More than 1 year has passed since last update.

SUM(CASE WHEN)を使った条件付き集計~

Posted at

dokoSQLを使用し、SUM関数で、sum関数の列以外の列を一緒に集計結果を取得できることがわかった。
当たり前っちゃ当たり前ですが、私にとっては新たな発見でしたので、メモ。

場面、
テーブルの表をそのまま取得してきたいけど、ある条件を満たしているレコードの件数を同じsqlで取得してきたい。
新人研修で同期がやっていてどうやってやるのか気になっていた。

insert.sql
insert into 家計簿アーカイブ(費目,メモ,入金額,出金額)values('給料','2月','10000','10000');
insert into 家計簿アーカイブ (費目,メモ,入金額,出金額)values('給料','3月','10000','10000');
insert into 家計簿アーカイブ (費目,メモ,入金額,出金額)values('給料','4月','10000','10000');

テーブルの中身
FireShot Capture 121 - dokoQL - v3.dokoql.jp.png

select.sql

select 日付,メモ,入金額,出金額,費目,(select sum(case when 費目 = '給料' then 1 else 0 end) from 家計簿アーカイブ) from 家計簿アーカイブ;

取得結果
スクリーンショット 2022-12-31 17.57.04.png

副問合せの列だけ表に肉づけしている感じでしょうか。
デフォルトで入っているテーブルを操作しているので、よかったらご自身でやってみてください。

参考
https://dokoql.jp/workspace
https://sukkiri.jp/books/sukkiri_sql

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0