Kombinieren Sie zwei ausgewählte Abfragen in einem

7

Ich habe drei Tabellen: Geschichte, Video und Benutzer. Die zwei folgenden Abfragen zeigen für jedes Video die Anzahl der Ansichten für französische Benutzer oder für deutsche Benutzer an:

%Vor%

und

%Vor%

Aber wie kombinieren Sie diese beiden Abfragen, um nur eins zu haben? Ich hätte gerne so etwas:

%Vor%     
iAmoric 26.10.2016, 11:20
quelle

4 Antworten

9

Verwenden Sie case -Ausdrücke, um eine bedingte Aggregation durchzuführen:

%Vor%

Beachten Sie die Änderung in GROUP BY V.idVideo , da dies die ausgewählte Spalte ist.

    
jarlh 26.10.2016, 11:22
quelle
5

Sie können dies mithilfe der bedingten Aggregation mit CASE EXPRESSION :

tun %Vor%     
sagi 26.10.2016 11:22
quelle
4

Verwenden Sie bedingte Aggregation:

%Vor%

Beachten Sie auch, dass die Abfrage vereinfacht werden kann. Die JOIN bis VIDEO wird wahrscheinlich nicht benötigt (vorausgesetzt, dass idVideo eindeutig ist, was eine sehr vernünftige Annahme ist).

Auch die ORDER BY und GROUP BY sollten dieselbe Spaltenreferenz verwenden.

    
Gordon Linoff 26.10.2016 11:26
quelle
2

Ausgehend von Oracle 11.1 können Sie die PIVOT-Operation verwenden:

%Vor%     
mathguy 26.10.2016 12:10
quelle

Tags und Links