2016-04-27 14 views
0

Also, ich habe diese Tabelle:Prozentsatz der Anfragen SQL

Table1 
|Number | abc | 
|100 | No | 
|200 | No | 
|300 | Yes | 
|400 | No | 
|500 | No | 

Was ich will, ist der Prozentsatz der Werte, die mit „Ja“ ist. In diesem Fall ist die gewünschte OUTPUT 20%

Ich dachte, dass durch die Division der Anzahl von "Ja" durch die Gesamtzahl würde es tun, aber ich kann nicht alle Dinge "beitreten".

Ich weiß, dass die Zahl der „Ja“

select count(abc) 
from table1 
where abc='yes' 

ist und die Gesamtzahl ist

select count(*) 
from table1 

Wie kann ich die gewünschte Ausgabe zu erhalten?

Antwort

1

Eine Abfrage, die in allen SQL-Motoren arbeitet, ist

select sum(case when abc = 'yes' then 1 else 0 end) * 100/count(*) 
from your_table 
+0

Der erste Fall war, obwohl die zweite (einfacher) funktionierte nicht: ERROR: Funktion Summe (boolean) existiert nicht. Wenn ich jedoch keinen einfacher finden kann, werde ich den ersten verwenden! – Username79123

+0

Wie in der Antwort erwähnt, funktioniert die zweite Abfrage, wenn Sie MySQL verwenden, was Sie nicht tun, wie ich es jetzt sehe. Ich entferne es, um Verwirrung zu vermeiden. –

Verwandte Themen