Ist es möglich, Group by, Having und Sum zu kombinieren?

8

Ich habe eine Tabelle:

%Vor%

Ich muss einige Berechnungen machen und versuchen, es in einer nicht wirklich komplexen Anfrage zu machen, sonst weiß ich, wie man es mit Anzahl von Anfragen berechnet. Ich brauche folgende Tabelle wie folgt:

%Vor%

Ich baue so weit:

%Vor%

Aber ich kann nicht herausfinden, wie man die Anzahl der gruppierten Datensätze mit Bedingungen berechnet. Ich kann diese Zahl mit HAVING aber in getrennter Anfrage erhalten.

Ich bin fast sicher, welche SQL diese Macht haben sollte.

    
S.ork 01.12.2017, 05:25
quelle

4 Antworten

12

Sie können CASE Ausdruck dafür verwenden.

Probieren Sie das aus,

%Vor%     
DineshDB 01.12.2017, 05:27
quelle
3

Eine kürzere Alternative zu CASE ist

%Vor%

weil NULL s nicht gezählt werden.

    
clemens 01.12.2017 06:15
quelle
3

Sie haben Ihre Anfrage fast abgeschlossen. Fügen Sie einfach eine bedingte Aggregation mit Hilfe von case expression für die errechnete Anzahl hinzu

%Vor%

Ergebnis

%Vor%     
Yogesh Sharma 01.12.2017 05:33
quelle
1

NULLIF() ist Standard SQL und wahrscheinlich kürzeste:

%Vor%

count() zählt nur Nicht-Null-Werte.

Weitere Varianten:

Erwin Brandstetter 02.12.2017 01:59
quelle

Tags und Links