2016-08-09 67 views
-3

Wir müssen alle Vorkommen von Feld in Spalte C1 und C2 vorhanden finden.Wir haben eine Anfrage von Client bezogen auf sql

Tabelle Client

C1  C2 
A  X 
A  X 
B  Y 
B  Y 

Ausgabetabelle

C1 C2 
A 2 
B 2 
X 2 
Y 2 

wir Einsäulentisch mit Teams Daten haben. Wir wollen alle Kombinationen von Spielen finden, die unter den Mannschaften passieren werden.

C1 
A 
B 
C 
D 

Ausgabetabelle

C1 
AB 
AC 
AD 
BC 
BD 
CD 
+5

Bitte einen Blick auf [ fragen] und [mcve] – Aleksej

+1

Sie müssen mehr speci sein was du zwischen deinen Beispielen tust und was du von uns erwartest !? Haben Sie Erfahrung mit der SQL-Syntax? –

+0

Dank Aleksej und B 7 für den Kommentar, wird sich um diese Punkte kümmern. –

Antwort

1

Wenn ich die zwei Fragen richtig verstehen ...

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. 

Und für den zweiten Teil haben

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

Danke Marcin für die Lösung. –