2014-01-21 10 views
7
SELECT COUNT(*) FROM Table1 WHERE user = "carl" AND ans = "yes" 

dann möchte ich die Ausgabe dieser Abfrage auf eine andere Abfrage zu unterteilen, zum Beispiel die Ausgabe 10 so wird es sein wie:dividieren durch Zählergebnis in mysql

10/SELECT COUNT(*) From Table1 WHERE user = "carl" 

Wie ist das Recht Syntax dafür?

Danke

+0

'SELECT 10/COUNT (*) FROM Tabelle1 WHERE user =" carl "AND ans =" ​​yes "'? – Sebas

Antwort

12

Sie wollen bedingte Aggregation und Teilung verwenden. Sie brauchen nicht zwei Abfragen:

SELECT SUM(ans = 'yes')/COUNT(*) 
FROM Table1 
WHERE user = 'carl'; 

Die SUM(ans = 'yes') zählt die Anzahl der Zeilen mit yes. Eigentlich könntest du das weiter vereinfachen zu:

+0

+1. Angesichts der spezifischen Anfragen des OP ist dies eine ideale Lösung. –

1

ein

Verwenden
SELECT (10/COUNT(*)) AS `myVariable` FROM `Table1` WHERE... 

Dann wird Ihr myVariable wie Sie benötigen.

2

Sie können dies tun, indem Sie die beiden Abfragen als Unterabfragen ausgeführt wird:

SELECT 
    (SELECT COUNT(*) FROM Table1 WHERE user = "carl" AND ans = "yes")/
    (SELECT COUNT(*) From Table1 WHERE user = "carl") 
Verwandte Themen