teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

sample

2018/03/14 03:44

投稿

yambejp
yambejp

スコア117892

answer CHANGED
@@ -1,1 +1,24 @@
1
- 基本的には総当たりで処理するしかないでしょう
1
+ 基本的には総当たりで処理するしかないでしょう
2
+
3
+ # sample
4
+ oracleとちょっと文法が違うかもしれませんが参考までに
5
+ - 元データ
6
+ ```SQL
7
+ create table tbl(id int unique,name varchar(10) unique,price int);
8
+ insert into tbl values(1,null,0),(2,'A',10000),(3,'B',10000),(4,'C',10000);
9
+ ```
10
+ - 組み合わせ結果
11
+ ```
12
+ select
13
+ t1.name as name1
14
+ ,t2.name as name2
15
+ ,t3.name as name3
16
+ ,t1.price+t2.price+t3.price as sum
17
+ from tbl as t1
18
+ left join tbl as t2
19
+ on t1.name!=t2.name and t1.id<t2.id
20
+ or t2.name is null
21
+ left join tbl as t3
22
+ on not t3.name in (t1.name,t2.name) and t1.id<t3.id and t2.id<t3.id
23
+ or t3.name is null
24
+ ```