このようなテーブルがあるとします:
postgres=# select * from t order by id; id | code | value ----+------+------- 1 | a | 1 2 | a | 2 3 | a | 3 4 | b | 4 5 | b | 5 6 | c | 6 7 | a | 7 8 | a | 8 (8 行)
id順で並べたとき、codeが同一で隣接しているレコードをグループ化して、valueの合計を計算したいのです。
求める結果はこんな感じです。
a 6 b 9 c 6 a 15
これはSQL一発でできますでしょうか?
使っているDBはPostgres 9.5ですが、他のDBでも方法がありましたら教えていただきたいです。
テスト用のCREATE文です:
CREATE TABLE t ( id serial, code varchar(10), value int ); INSERT INTO t (code, value) VALUES ('a', 1); INSERT INTO t (code, value) VALUES ('a', 2); INSERT INTO t (code, value) VALUES ('a', 3); INSERT INTO t (code, value) VALUES ('b', 4); INSERT INTO t (code, value) VALUES ('b', 5); INSERT INTO t (code, value) VALUES ('c', 6); INSERT INTO t (code, value) VALUES ('a', 7); INSERT INTO t (code, value) VALUES ('a', 8);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/19 11:18