以下の様なtableで、複数の条件でグループ化した状態から、Valueのカラムの値を合計したいのですが、1回のクエリで可能でしょうか?
Tableの状態
No | From | To | Value |
1 | 1 | 1 | 1 |
2 | 2 | 1 | 5 |
3 | 1 | 1 | 10 |
4 | 1 | 2 | 50 |
5 | 2 | 3 | 100 |
6 | 1 | 2 | 10 |
7 | 3 | 1 | 10 |
Tableの条件
No 通し番号 AUTO_INCREMENT
From,To 任意の値,重複前提のレコード(not NULL)
Value int 整数です(not NULL)
出力したい状態
| From | To | sum(Value) |
| 1 | 1 | 11 |
| 1 | 2 | 60 |
| 2 | 1 | 5 |
| 2 | 3 | 100 |
| 3 | 1 | 10 |
抽出の条件
From と To のAND条件でユニークなレコードを抽出し、その際のValueの値を合計する。
出力順序はFromの昇順、次にToの昇順
自己結合やサブクエリあたり等を試してますがうまくゆきません。
従来は sum(Value) と FromでGroupしたクエリを吐いて、
まずFromの配列を作ってから、再度Fromの値をWHEREの条件にしたクエリを、ユーザー数だけ連続で処理する、という力技を使っておりました。
これだとFromのユニーク数だけ連続でクエリを吐く必要がある為、上記の様な方法で一度に解決できれば幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/19 09:51