前提・実現したいこと
SQLliteについて次のtableより
| id | 担当 | 時期 |
| ---- | ---- | ---- |
| 1 | hoge | 前期 |
| 2 | hoge | 後期|
| 3 | foo | 前期|
| 4 | foo | 前期|
| 5 | bar | 前期|
| 6 | bar | 後期|
| 7 | bar | 後期|
次のように取得したいです
| 担当 | 前期 | 後期 |
| ---- | ---- |
| hoge | 1 | 1 |
| foo | 1 | 0
| bar| 1| 1|
または
| 担当 | 前期 | 後期 |
| ---- | ---- |
| hoge | 1 | 1 |
| foo | 2 | 0
| bar| 1 | 2 |
該当のソースコード
作成したテーブルです
SQLite
1CREATE TABLE mytable ( 2 id INTEGER PRIMARY KEY, 3 担当 TEXT NOT NULL, 4 時期 TEXT NOT NULL 5); 6 7INSERT INTO mytable (担当, 時期) VALUES ('hoge','前期'); 8INSERT INTO mytable (担当, 時期) VALUES ('hoge','後期'); 9INSERT INTO mytable (担当, 時期) VALUES ('foo', '前期'); 10INSERT INTO mytable (担当, 時期) VALUES ('foo', '前期'); 11INSERT INTO mytable (担当, 時期) VALUES ('bar', '前期'); 12INSERT INTO mytable (担当, 時期) VALUES ('bar', '後期'); 13INSERT INTO mytable (担当, 時期) VALUES ('bar', '後期');
試したこと
次のように試しましたが SUM('前期'),SUM('後期') が共に0でした
実行文
SQLite
1SELECT 担当 , 時期 , 2CASE 3 WHEN 時期 = '前期' THEN 1 4 ELSE 0 5END AS '前期', 6CASE 7 WHEN 時期 = '後期' THEN 1 8 ELSE 0 9END AS '後期', 10SUM('前期'), 11SUM('後期') 12FROM mytable 13GROUP BY 担当, 時期;
結果
|担当|時期|前期|後期|SUM('前期')|SUM('後期')
| ---- | ---- | ---- | ---- |
bar|前期|1|0|0.0|0.0
bar|後期|0|1|0.0|0.0
foo|前期|1|0|0.0|0.0
hoge|前期|1|0|0.0|0.0
hoge|後期|0|1|0.0|0.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/10 21:47
2021/12/10 23:28
2021/12/11 10:10