2016-08-09 4 views
-3

列C1とC2に存在するすべてのフィールドが見つかりました。SQLに関連するクライアントからの要求があります

表クライアント

C1  C2 
A  X 
A  X 
B  Y 
B  Y 

出力表

C1 C2 
A 2 
B 2 
X 2 
Y 2 

我々はチームのデータを持つ単一列のテーブルを持っています。我々はチームの間で起こる試合のすべての組み合わせを見つける必要があります。

C1 
A 
B 
C 
D 

出力テーブル

C1 
AB 
AC 
AD 
BC 
BD 
CD 
+5

を理解していれば[見てください。 [質問する]と[mcve] – Aleksej

+1

あなたはより具体的にする必要がありますあなたの事例とあなたが私たちに期待していることの間に何をするかについて、 SQL構文に関する経験はありますか? –

+0

AleksejとB7のコメントありがとうございました。これらの点に注意します。 –

答えて

1

私は2つの質問に正しく...

SQL> CREATE TABLE tab1 AS 
    2 WITH t AS 
    3 (SELECT 'A' c1, 'X' c2 
    4 FROM dual 
    5 UNION ALL 
    6 SELECT 'A', 'X' 
    7 FROM dual 
    8 UNION ALL 
    9 SELECT 'B', 'Y' 
10 FROM dual 
11 UNION ALL 
12 SELECT 'B', 'Y' 
13 FROM dual) 
14 SELECT * FROM t; 

Table created. 

SQL> 
SQL> SELECT * FROM tab1 ORDER BY c1, c2; 

C1 C2 
--- --- 
A X 
A X 
B Y 
B Y 

4 rows selected. 

SQL> 
SQL> SELECT c1, COUNT(*) c2 
    2 FROM (SELECT c1 FROM tab1 UNION ALL SELECT c2 FROM tab1) 
    3 GROUP BY c1 
    4 ORDER BY c1; 

C1 C2 
--- --- 
A  2 
B  2 
X  2 
Y  2 

4 rows selected. 

そして、第二部のための

SQL> CREATE TABLE tab2 AS 
    2 WITH t AS 
    3 (SELECT CAST(column_value AS VARCHAR2(3)) c1 
    4 FROM TABLE(sys.odcivarchar2list('A', 'B', 'C', 'D'))) 
    5 SELECT * FROM t; 

Table created. 

SQL> 
SQL> 
SQL> SELECT * FROM tab2 ORDER BY c1; 

C1 
--- 
A 
B 
C 
D 

4 rows selected. 

SQL> SELECT t1.c1 || t2.c1 c1 FROM tab2 t1 JOIN tab2 t2 ON t1.c1 < t2.c1; 

C1 
--- 
AB 
AC 
AD 
BC 
BD 
CD 

6 rows selected. 
+0

ありがとうMarcinソリューション。 –

関連する問題