2016-04-19 5 views
1

der hat Lassen Sie sagen, ich eine Tabelle wie diese haben:Wert auswählen, die eine größere Anzahl von Werten

 Table T: 
     A B 
    ------- 
    1 x | O 
    2 x | O 
    3 x | P 
    4 y | O 
    5 y | P 
    6 y | P 
    7 z | O 
    8 z | O 
    9 z | P 

Ich möchte die Werte in Spalte A wählen, die eine größere Anzahl der Werte in Spalte B haben .

Zum Beispiel möchte ich x, y oder z auswählen, wenn sie mehr O's als P's haben.

Ich habe mehrere Versuche gemacht, aber ich kann ehrlich gesagt nicht herausfinden, wie man so etwas macht.

Also, wie kann ich eine Abfrage schreiben, die abrufen, was ich will?

EDIT: Erwartete Ausgabe wäre:

A 
    - 
1 x 
2 z 
+1

fügen Sie bitte die erwartete Ausgabe hinzu. –

+1

Für diese bestimmten Beispieldaten, was wäre das erwartete Ergebnis? –

Antwort

2

Diese wie Aggregation klingt. Etwas wie dieses:

select a 
from t 
group by a 
having sum(B = 'O') > sum(b = 'P'); 
+1

58 Sekunden. Das war schnell! –

+0

Vielen Dank. Ich kann nicht glauben, dass es so einfach war. – dogwin

Verwandte Themen